方法-改写代码:请问下面的代码 怎么用循环或者遍历的方式改写呀

问题描述

改写代码:请问下面的代码 怎么用循环或者遍历的方式改写呀
public TodayExamWidget() {
    self = binder.createAndBindUi(this);

    int row  =1 ;
    gridWidget = new Grid();
    gridWidget.resize(row,3);
    gridWidget.setSize("100","100");
    gridWidget.setText(0,0,"Uncorrected");
    gridWidget.addStyleName("gray_cell");
    gridWidget.setBorderWidth(1);
    gridWidget.getCellFormatter().setWidth(0,0,"160");
    gridWidget.getCellFormatter().setWidth(0,1,"60");
    gridWidget.getCellFormatter().setWidth(0,2,"60");

    visionFlowPanel.add(gridWidget);
}

    private void populateVisualAcuity(Grid gridWidget, VisualAcuityCollection visualAcuityCollection) {
    int rowCount = gridWidget.getRowCount();
    if(!visualAcuityCollection.normal.isEmpty()){

        gridWidget.resize(rowCount +1,3);
        gridWidget.setText(rowCount -2,0,VisualAcuityType.NORMAL.toString());
        gridWidget.setText(rowCount -2,1,visualAcuityCollection.normal.od.distance);
        gridWidget.setText(rowCount -2,2,visualAcuityCollection.normal.os.distance);
    }
    if(!visualAcuityCollection.pinhole.isEmpty()){
        gridWidget.resize(rowCount +1,3);
        gridWidget.setText(rowCount -2,0,VisualAcuityType.PINHOLE.toString());
        gridWidget.setText(rowCount -2,1,visualAcuityCollection.pinhole.od.distance);
        gridWidget.setText(rowCount -2,2,visualAcuityCollection.pinhole.os.distance);
    }
    if(!visualAcuityCollection.binocular.isEmpty()){
        gridWidget.resize(rowCount +1,3);
        gridWidget.setText(rowCount -2,0,VisualAcuityType.BINOCULAR.toString());
        gridWidget.setText(rowCount -2,1,visualAcuityCollection.binocular.od.distance);
        gridWidget.setText(rowCount -2,2,visualAcuityCollection.binocular.os.distance);
    }

    row = rowCount;
}

    主要是上面的那个popluteVisualVison 方法, 又没有什么方法让代码 用loop形式改写? 谢谢啦 各位大神门

解决方案

Java下的Lambda好丑陋。

解决方案二:

能否循环,则要看 visualAcuityCollection.normal、visualAcuityCollection.pinhole 和 visualAcuityCollection.binocular 是否是相同的类型?
如果是,则可以考虑用一个变量来代替它们实现循环。循环内的代码也不一样,看看有没有什么规律吧,如: VisualAcuityType。

解决方案三:

用lambda表达式可以做到
Function [] funcs = new Function<>[]{visualAcuityCollection.normal::isEmpty, visualAcuityCollection.pinhole::isEmpty, visualAcuityCollection.binacular::isEmpty};

for(Function func : funs) {
....
}

时间: 2024-12-30 20:07:21

方法-改写代码:请问下面的代码 怎么用循环或者遍历的方式改写呀的相关文章

link中能不能要查询的条件放在treeviw中,请问怎么编写代码实现?

问题描述 link中能不能要查询的条件放在treeviw中,请问怎么编写代码实现? link中能不能要查询的条件放在treeviw中,请问怎么编写代码实现? 解决方案 你可以保存一些参数,然后这个函数解析,linq调用这个方法去判断,如果你想动态执行代码,c#可以动态编译代码的,你搜一下,记不得是动态编译,我博客上也有一个简单的介绍

请问这段代码为什么输出null,求大神解答程序执行的顺序?

问题描述 请问这段代码为什么输出null,求大神解答程序执行的顺序? public class xieCheng { private String baseName="Base"; public xieCheng(){ this.callName(); } public void callName(){ System.out.println(baseName); } } public class Sub extends xieCheng { private String baseNam

gui-Java画板代码 请问这个flag变量具体是什么作用?

问题描述 Java画板代码 请问这个flag变量具体是什么作用? import java.awt.*; import java.awt.event.*; import javax.swing.*; public class DrawPanel extends JPanel { private JPanel right,left;//建立2个面板 private JRadioButton op2; private int f=2; private int sx, sy, x,y; **privat

mysql-PHP,MySQL请问这两行代码有什么区别?

问题描述 PHP,MySQL请问这两行代码有什么区别? 请问这两行代码有什么区别?我试了一下都可以运行成功. $query = "insert into books values (' ".$isbn." ', ' ".$author." ', ' ".$title." ', ' ".$price." ')"; $query = "insert into books values (' $isbn

web前端-前辈,请问下面的代码怎么解释?

问题描述 前辈,请问下面的代码怎么解释? 前辈 请问下面的代码怎么解释? 原地址http://www.w3school.com.cn/tiy/t.asp?f=jquery_parent <!DOCTYPE html> <html> <head> <style> .ancestors * { display: block; border: 2px solid lightgrey; color: lightgrey; padding: 5px; margin:

iostream-C++,请问这句代码是什么意思

问题描述 C++,请问这句代码是什么意思 Rectangle( int a=0, int b=0):Shape(a, b) { } 下面是完整的代码 #include using namespace std; class Shape { protected: int width, height; public: Shape( int a=0, int b=0) { width = a; height = b; } int area() { cout << "Parent class

C#中派生类的方法里的匿名delegate调用基类的方法会产生无法验证的代码

看来阅读一个开发人员的blog是获取知识的一个捷径,特别是当那位开发人员负责的产品是你天天都用的基础设施之一,例如说--编译器.在阅读Eric Lippert的blog时,我无意中了解到了很多我以前所不熟悉的知识,例如说一些语言特性,一些编程思想之类:但更有趣的,我了解到了很多他所负责的产品中的诡异地方. 开篇花絮: 假如我们现在有一个枚举类型E,其中有一个枚举值的名字是x. 你或许知道这个表达式是对的: C#代码 0 | E.x 但是你或许不知道这个表达式(根据语言规范应该)是错的: C#代码

argv-初次接触perl脚本,请问下面的代码怎么理解

问题描述 初次接触perl脚本,请问下面的代码怎么理解 #!/usr/local/bin/perl $pattern=$ARGV[0];$count=$pattern=~s/(?<[^>]*>)//g;@ARGV=qw# #;$print='print ""'; 解决方案 #!/usr/local/bin/perl 这句如同*nix操作系统中用来指定脚本解释程序的位置./usr/local/bin/perl是Perl语言的脚本解释器程序.$pattern=$ARGV[

c++-请问我写的C++基于循环数组的队列 代码错在哪里,老是答案错

问题描述 请问我写的C++基于循环数组的队列 代码错在哪里,老是答案错 正常出队列返回success,空队列返回underflow, 满队列返回overflow enum ErrorCode { success, underflow, overflow }; const int maxQueue = 100; template <class QueueEntry> class MyQueue { public: MyQueue(){ front = rear = 0; } // 判断队列是否为