我正在开发一个项目,其中有很多由库创建的对象,我无法访问这些对象的创建过程.
以下片段是说明我的问题的一个很好的例子.
码:
public class Clazz {
//The contents of Clazz are irrelevant
//Clazz is NOT my class. I have no access to its internal structure.
//However, I do have access to Clazz objects that were created elsewhere.
}
Run Code Online (Sandbox Code Playgroud)
ExampleInterface 是Clazz在编译时可能会或可能不会实现的接口.
码:
public interface ExampleInterface {
public void run();
}
Run Code Online (Sandbox Code Playgroud)
以下代码是我遇到的问题.请注意以下事项:
run()仅当c是其实例时才被调用ExampleInterface.getRunConditions(Clazz c)并且executeClazz(Clazz c)是我无法访问的类中的私有方法.Clazz将不包含名为方法run().码:
public class ExampleExecutor {
public void executeClazz(Clazz c) …Run Code Online (Sandbox Code Playgroud) 我一直觉得它非常有用,坚持在Java Beans命名约定:getX(),setX(),isX()等我认为Java Bean的命名约定提供了几个主要优点:
我知道有许多类是Java API的一部分,它们不使用Java Beans命名约定.一个例子是ArrayList,它有诸如的方法size().
我实际上有两个主要问题:
ArrayList是在Java Bean发布之前编写的.Oracle是否习惯对所有(或至少大多数)新内容使用Java Bean命名约定?以下是让人们思考而不是实际问题.
如上所述,我一直坚持使用Java Bean命名约定.我认为它们在很多方面都提供了很多优势.我认为最大的问题是没有Java Beans,很多人会使用令人困惑的命名约定
我个人认为应始终坚持以下内容,我很想知道人们对此的看法:
big()应该是isBig().size()是House对象的适当方法,但door()不是.其原因在于它size是一种house由自然界决定的继承属性.house拥有a在物理上并不是必需的door.
door(),该方法应该被命名getDoor().profile().取决于它所属的类,profile()可能是动词或名词.我可以分析一些东西,或者我可以获得个人资料.将方法的名称更改为getProfile()或doProfiling()将添加说明.