我想知道是否可以在Java中模拟Javascript原型。是否可以将变量列表与Java中的函数相关联?我想创建类似于Javascript原型的东西,如果可能的话。
所以这是一个例子(在Javascript中):
var s = doStuff.prototype;
s.isImplemented = false;
function doStuff(){
//this function has not yet been implemented
}
var s = functionIsImplemented.prototype;
s.isImplemented = true;
function functionIsImplemented(theFunction){
//this function returns true if the function has been identified as "implemented"
if(theFunction.prototype.isImplemented == true){
return true;
}
return false;
}
alert(functionIsImplemented(doStuff)); //this should print "false"
alert(functionIsImplemented(functionIsImplemented)); //this should print "true"
有没有办法在Java中使用相同的功能?
答案 0 :(得分:4)
是的,它当然是可能的,并且在某些情况下非常有用。
通常,您会执行以下操作:
它不像在动态语言中直接执行它那样优雅,但它可以工作并获得相同的好处(运行时灵活性,避免严格OOP的约束,快速的分类等)。
它也有同样的缺点 - 静态类型检查的丢失和主要的性能开销。
举个例子,我写的开源游戏(Tyrant)将这种方法用于所有游戏内对象。