在方法调用中传递当前对象是好/坏/可接受的做法。如:
public class Bar{
public Bar(){}
public void foo(Baz baz){
// modify some values of baz
}
}
public class Baz{
//constructor omitted
public void method(){
Bar bar = new Bar();
bar.foo(this);
}
}
具体来说,该行bar.foo(this)
可接受吗?
没有理由不使用它,它this
是当前实例,并且使用完全合法。实际上,通常没有清除它的干净方法。
因此使用它。
由于难以令人信服地没有示例是可以接受的(对这个问题的否定答案总是更容易争论),我只是打开了最常见的java.lang
类String
之一,当然,例如,我找到了这种用法的实例
1084 // Argument is a String
1085 if (cs.equals(this))
1086 return true;
查找(this
在大“接受”的项目,你不会不发现它。
这可能是在堆栈溢出中问过的最愚蠢的问题,但这很困扰我... 虽然从函数中的int-literal创建普通的短变量并不需要任何显式转换,但是为什么将int-literal传递给短变量(参数传递)需要显式转换呢。。。。。。?? 再一次 我现在不建议在一篇帖子里问两个不相关的问题,但这太琐碎了,不能在另一篇帖子里问。。 **“for”计数器变量的范围** 所以我试着用普通方块 这是否意味着,区块没有自己
那代码在OOP方式下还是好的吗?还是我应该用接口?我认为直接通过方法是可以的。
问题内容: 我在Java中有以下情形。假设我有一个接口,以及两个实现此接口的类。如下: 公共接口myInterface { } 公共类A实现myInterface { } 公共类B实现myInterface { } 如果定义如下,如何调用上面的printOtherStuff方法: 上面的调用代码似乎无效。有任何想法吗? 问题答案: 的参考类型为。这意味着您只能访问接口中定义的方法。您可以将其强制类
我正在ApacheSpark上的数据库中构建一个族谱,使用递归搜索来查找数据库中每个人的最终父级(即族谱顶部的人)。 假设搜索id时返回的第一个人是正确的家长 它给出以下错误 “原因:org.apache.spark.SparkException:RDD转换和操作只能由驱动程序调用,不能在其他转换中调用;例如,
问题内容: 在Java接口中定义类的能力的实际方面是什么: 问题答案: 我可以想到除Eric P链接的用法之外的另一种用法:定义接口的默认/无操作实现。 ./alex 另一个示例- 空对象模式的实现:
我正在使用Saxon(如果需要,我可以使用Xalan)XSLT处理器进行一些转换。我想将下面对象的实例作为参数传递给XSLT模板。 所以我创建了这个对象。 在XSLT文件中,我将参数声明为: 现在我的问题是如何在XSLT内调用该对象的任何实例方法(即.getValue())?有可能吗?我知道我可以调用不同Java类的静态方法,但这并不完全是我想要的。 此外,是否可以在XSLT中填充Java对象,即