有没有什么办法通过方法引用来定义方法,如下面的虚构代码(和虚构语法)所示?在Java 8中可以使用方法引用来定义/实现方法吗?
class A
{
public Sometype somefunction(Argtype arg)
{ ... return somevalue; ..}
}
class B
{
public Sometype method = A::somefunction;
}
或
class C
{
public Sometype method(Argtype arg) = A::somefunction;
}
类似的功能,似乎对我非常有用。方法在编译时已知,因此类B
或C
中的任何定义可能只是(在类型检查后)接管对A
中已知方法的引用。优点:更快的调用(比直接调用新方法所需的调用更少) - 我不确定Java编译器是否不会优化?
现在有没有办法在Java中实现它(如果是的话,它已经成功地避开了我的搜索)?或者有没有很好的理由不把它引入到Java?有没有提供类似性能优势的解决方法?
PS:我收到类似问题标题已被降低和/或关闭的消息。如果这也适用于此,请帮助我理解原因。提前致谢!
怎么样使用装饰。 ? 您可以在A类中定义该方法,并调用B类或C类的相同方法。 如果您可以分享您的确切用例。这将清除您的要求。并且您可能会得到更准确的答案 – Pramod
性能优势?这是一个关于微观优化的问题吗? – Kayaman
'Sometype'是'somefunction'的返回类型。类“B”和“C”中的字段必须是“Function”或类似的类型。 –
dpr