相关疑难解决方法(0)

如何使用setter而不是构造函数作为最终变量?

我正在解析一个XML文件,其中我想要成为不可变的字段之一,ID,必须在创建对象后设置.如果ID!= null,我应该将它设置为null,并在setID()方法中抛出异常吗?

编辑:我正在解析XML文件,并在开始时创建一个对象,其字段和对象使用XML文件中的信息填充.我希望能够在创建根对象后设置ID,它应该是不可变的.

编辑:将"最终"更改为"不可变",因为这真的是我在语义上的意思.(抱歉:()

java oop final immutability

3
推荐指数
4
解决办法
4362
查看次数

是否有Delphi的"with..do"Java等价物?

考虑这个随机对象:

Object Test of Class TestClass:
  String Name;
  Integer Age;
  procedure setName(n);
  function getName(): String;
Run Code Online (Sandbox Code Playgroud)

Delphi中,如果我们想要使用对象的许多属性和方法轻松工作,我们可以这样做:

Test.Name = 'EASI';
Test.Age = 34;
Test.setName('Eduardo Alcantara');
ShowMessage(Test.getName);
Run Code Online (Sandbox Code Playgroud)

......或者我们可以这样做:

with Test do
begin
  Name = 'EASI';
  Age = 32;
  setName('Eduardo Alcântara');
  ShowMessage(getName);
end
Run Code Online (Sandbox Code Playgroud)

在Java中是否有类似的结构,我们可以在Delphi中缩短语法?

java delphi

2
推荐指数
1
解决办法
1006
查看次数

使用级联函数调用设计API(Class.doThis("...").doThat("...").....)

我已经看到一些API的设计方式必须使用它们如下面的代码

Class.doThis("...").doThat("...").....
Run Code Online (Sandbox Code Playgroud)

例如,HTTPCommon(Fluent API)可用作:

Request.Get("http://somehost/")
        .connectTimeout(1000)
        .socketTimeout(1000)
        .execute().returnContent().asString();
Run Code Online (Sandbox Code Playgroud)

石英计划可用作:

JobDetail job = newJob(HelloJob.class)
               .withIdentity("job1", "group1")
               .build();
Run Code Online (Sandbox Code Playgroud)

SimpleCatptch可用作:

Captcha captcha = new Captcha.Builder(200, 50)
                  .addText()
                  .addBackground()
                  .addNoise()
                  .gimp()
                  .addBorder()
Run Code Online (Sandbox Code Playgroud)

这种API设计的名称是什么?这样的设计好吗?

java oop api design-patterns

2
推荐指数
1
解决办法
964
查看次数

Builder模式是否替换工厂模式?

我知道很多次都会问这个问题,但我只是想澄清一下这个问题.构建器模式可以替换工厂模式.

是构建器模式逐步创建并返回复杂对象,这也可以在工厂模式中完成.

design-patterns builder-pattern

1
推荐指数
1
解决办法
948
查看次数

构建一个对象

我在这个博客中遇到了一种非常不寻常的方法来构建一个类的对象:http: //marchwicki.pl/blog/2010/11/building-a-pojo-in-an-elegant-way/.这是一个很好的方法来做到这一点.有什么好处?

java constructor design-patterns object

1
推荐指数
1
解决办法
599
查看次数

`.build()`在Google Analytics for Android的上下文中做了什么?

此代码初始化一个新的EventBuilder对象并在该对象上设置值.为什么最后需要.build()?

tracker.send(new HitBuilders.EventBuilder()
    .setCategory("Achievement")
    .setAction("Unlocked")
    .setLabel("5 Dragons Rescued")
    .setValue(1)
    .build());
Run Code Online (Sandbox Code Playgroud)

java android google-analytics

1
推荐指数
1
解决办法
34
查看次数

在参数和继承中定义参数值

我在使用某些Java时遇到问题,如何在Java中提供默认参数值?例如我在C ++中有这个

DVD(int i, string t, int y, string d="Unknown"): Items(i,t,y),director(d){} 在Java中,我尝试

public Dvd(int i, String t,int y, String d="Unknown"){
        super(i,t,y);
        director = d;
    }
Run Code Online (Sandbox Code Playgroud)

无法建立。那么我该如何提供默认值呢?

在我的主要测试课程中,我尝试给出3个参数,分别为4,但这也失败了。我如何解决这个问题?

java multiple-inheritance default-value

0
推荐指数
1
解决办法
272
查看次数