你有没有在java
中看到过这种语法class obj = class.method;
TaskStackBuilder stack = TaskStackBuilder.create(this);
这是什么意思?答案 0 :(得分:1)
这是什么意思?TaskStackBuilder stack= TaskStackBuilder.create(this);
这意味着TaskStackBuilder.create
返回TaskStackBuilder
类型的对象。像这样的方法通常称为 builder 或 factory 方法。
示例:
class TaskStackBuilder {
public static TaskStackBuilder create(Object obj) {
return new TaskStackBuilder();
}
}
当然,您正在查看的那个可能会使用obj
(并使用更具体的类型)。
当可以缓存和重用对象实例时,工厂方法特别有用。例如,Integer
类缓存Integer.valueOf(int)
缓存{-1}}实例的值-128 throug 127,并可以缓存其他实例,所以当你执行Integer
时(例如),您将始终取回Integer.valueOf(20)
的相同实例(不仅仅是等效的实例)。
答案 1 :(得分:0)
我认为,你的意思是Factory Pattern你可以用私有类构造函数来创建一个spezified实例。
您班级的默认构造函数是私有的:
public static void main(String[] args) {
System.out.println(isAnagram("mary", "army"));
}
public static boolean isAnagram(String s1, String s2){
char[] c1 = s1.toLowerCase().toCharArray();
char[] c2 = s2.toLowerCase().toCharArray();
Arrays.sort(c1);
Arrays.sort(c2);
boolean anagram = false;
if(Arrays.equals(c1, c2)){anagram = true;}
return anagram;
}
并且要创建一个实例,可以调用create方法,该方法可以使用私有consturctor来创建实例。
另见singleton pattern。您只需要一个对象实例的地方:
public class Test { private static Test _instance = null;
public SomeClass{
private SomeClass(){
}
}
}