Tag: 接口

为什么不允许接口作为注释成员?

考虑以下代码: @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Bar { Foo foo() default FooImpl.FooConstant; } 编译错误: 注释值不是允许类型 如果我用FooImpl替换Foo ,则接受代码。 这种行为的原因是什么?

通常使用Scala闭包实现Java Single-Abstract-Method接口?

据我了解,当它们最终出现时,我们将能够用Java闭包代替等效的单方法接口。 是否有标准的Scala习惯用法 – 使用Scala闭包实现Java Single Abstract Method接口? 理想情况下,我希望以下内容能够实现自动化 test(“Closure”) { var event: PropertyChangeEvent = null var label = new JLabel() label.addPropertyChangeListener( {e: PropertyChangeEvent => event = e} ) label.setText(“fred”) event.getNewValue should be (“fred”) }

在Clojure中实现Java通用接口

我正在尝试使用webdriver的webdriver-clj包装器在selenium2 / webdriver项目中获取clojure。 但是,由于Web界面是大量编写脚本的,我需要有一个选项来等待脚本创建某些元素,而不是页面加载。 所以我试图在clojure中创建一个wait-for函数,使用WebDriverWait类来测试元素属性,最好使用webdriver / by-functions中的clojure语法。 然而,服务员类直到方法采用通用接口(com.google.common.base.Function)作为参数,并且由于我的Java知识几乎不存在,这对于我刚刚起步的clojure技能来说certificate太多了。 任何有clojure-java互操作技能的人,以及如何在clojure中实现以下java代码以便它与webdriver / by-syntax结合的想法? Function presenceOfElementLocated(final By locator) { return new Function() { public WebElement apply(WebDriver driver) { return driver.findElement(locator); } };} // … driver.get(“http://www.google.com”); WebDriverWait wait = new WebDriverWait(driver, /*seconds=*/3); WebElement element = wait.until(presenceOfElementLocated(By.name(“q”)) 结果应该使这样的事情成为可能 (defn test [] (let [driver (webdriver/new-driver :firefox)] (webdriver/get driver “http://127.0.0.1/”) (webdriver/wait-for (webdriver/by-name […]

Guava EventBus中的注释与接口

Guava开发人员选择使用注释: class EventBusChangeRecorder { @Subscribe void recordCustomerChange(ChangeEvent e) { recordChange(e.getChange()); } } …而不是经典界面: class EventBusChangeRecorder implements Handler{ void handle(ChangeEvent e) { recordChange(e.getChange()); } } 这使得编译时检查变得不可能。 所以我想知道这种方法的优点是什么。 你看到注释有什么好处吗?

没有实现类的接口实例

我有一个JET模板,用于为接口实现类生成代码。 我无法想出一个可执行的测试类来打印出这个生成的代码,因为我无法获得从JET模板创建的generate方法的参数的对象。 我希望测试类能够像这样工作: /** * An executable test class that prints out exemplary generator output * and demonstrates that the JET template does what it should. */ public class TestClass { public static void main(String args[]) throws ClassNotFoundException, InstantiationException, IllegalAccessException { String className = “A”; // “A” is the name of the interface in the […]

当对象是Java中的接口引用时类型转换

我熟悉inheritance model type casting 。 让SuperClass and SubClass成为父类和子类; SuperClass superClass = new SubClass() ; – 这里实例化的object是subclass object ; 但它的reference type是SuperClass ; 那只是可以在subclass object上调用SuperClass那些methods ; 不能调用任何未在subclass inherited/overridden methods (即subclass任何唯一methods )。 如果SuperClass is an interface而SubClass implements it我观察到与上面相同的行为。 这只是在SuperClass interface中声明的那些方法可以在SubClass对象上调用。 我的理解是否正确? 但是通过一些casting ,我可以调用不属于接口的方法,我在下面的示例代码中观察到了这些方法; 我对我的理解做了一些评论,说明它是如何运作的; 但我想知道这是否有意义,或者我的解释是否错误; class Animals { public void bark(){ System.out.println(“animal is barking”); } } interface catIF […]

使用compareTo方法和数组按名称和测试分数对学生进行排序

我需要使用类似的interfact和compareTo方法按字母顺序对学生列表进行排序,然后按测试分数排序。 我正在努力让这个在我的应用程序中工作。 需要从文本文件中读取名称列表。 我不知道我的教授使用的文本文件中会有多少名称,除了它将小于100.我还应该在底部显示成绩的平均值以及在任何旁边写一条消息比平均水平低15分的学生。 我还没有真正了解写作消息部分,因为我目前仍然坚持要打印和排序的名称和分数。 文本文件应如下所示: Steelman Andrea 95 Murach Joel 98 Lowe Doug 82 Murach Mike 93 这就是我到目前为止……如果有人能给我一点方向,我会很感激。 谢谢。 package chapt11; import java.io.FileReader; import java.util.Arrays; importjava.util.Scanner; public class CH11AS8App { /** * @param args */ public static void main(String[] args) throws Exception { System.out.println(“Welcome to the Student Scores Application.”); System.out.println(); Scanner aScanner = new […]

从具有子类的抽象类实现Comparable接口

package geometricobject; public abstract class GeometricObject implements Comparable { private String color = “white”; private boolean filled; private java.util.Date dateCreated; protected GeometricObject(){ dateCreated = new java.util.Date(); } protected GeometricObject(String color, boolean filled){ dateCreated = new java.util.Date(); this.color = color; this.filled = filled; } public String getColor(){ return color; } public void setColor(String color){ this.color = […]

如何在java中的多个类中使用一个接口?

我有一个活动和2个片段。 我想在活动时listener.receivePreview(obj)然后 执行:OneFragment – > receivePreview。 执行:TwoFragment – > receivePreview。 public class MainAct extends AppCompatActivity { public interface OnReceiveListener { // This can be any number of events to be sent to the activity void receivePreview(Object… obj); } private OnReceiveListener listener; } public class OneFragment extends Fragment implements OnReceiveListener{ @Override public void receivePreview(Object… obj) { […]

使用接口引用访问java Object类方法

让我们考虑以下示例。 public interface SimpleInterface { public void simpleMethod(); } public class SimpleClass implements SimpleInterface{ public static void main(String[] args) { SimpleInterface iRef = new SimpleClass(); SimpleClass cRef = new SimpleClass(); iRef.simpleMethod(); // Allowed. Calling methods defined in interface via interface reference. cRef.specificMethod(); // Allowed. Calling class specific method via class reference. iRef.specificMethod(); // Not allowed. […]