使用抽象类,我想定义一个为子类返回"this"的方法:
public abstract class Foo {
...
public <T extends Foo> T eat(String eatCake) {
...
return this;
}
}
public class CakeEater extends Foo {}
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这样的事情:
CakeEater phil = new CakeEater();
phil.eat("wacky cake").eat("chocolate cake").eat("banana bread");
Run Code Online (Sandbox Code Playgroud)
可以说香蕉面包会抛出IllegalArgumentException,并带有"Not a cake!"的消息.
私有静态方法中的静态final String是否在调用时实例化一个新对象?
private static String Test() {
final String foo = "string literal";
return foo;
}
Run Code Online (Sandbox Code Playgroud)
或者编译器是否知道方法中只有一个字符串文字?或者我应该将其设为私有静态最终类字段?这具有通过在类周围扩展代码来降低可读性的效果.