作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在 Ruby 中,我可以创建特定于实例的方法(单例方法)
class C;end
v1,v2 = C.new, C.new #=>two instances of class C
def v1.meth
puts "I am only available in instance v1"
end
puts v1.meth #=> prints -> I am only available in instance v1
puts v2.meth #=> throws -> undefined method 'meth'
它在 Java 中的等价物是什么?
最佳答案
最接近的做法是拥有匿名类。
class C {}
C v1 = C() {
void meth() {
puts("I am only available in instance v1");
}
};
C v2 = new C();
// prints -> I am only available in instance v1
v1.getClass().getMethod("meth").invoke(v1);
// throws NoSuchMethodException
v2.getClass().getMethod("meth").invoke(v2);
在 Java 8 中你可以写
interface C {
void meth();
}
C v1 = () -> puts("I am only available in instance v1");
C v2 = () -> { throws new UnsupportedOperationException(); }
v1.meth();
v2.meth();
在自然 Java 中,方法调用是静态检查的,您不能调用编译器无法确定存在的方法。 (你可以用上面的反射来做到这一点)
关于java - 什么是 Java 对 Ruby 单例的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23294472/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!