草庐IT

generic-interface

全部标签

java - gRPC 不为服务生成接口(interface),只生成服务类

我是gRPC的新手,遇到了这个问题:我创建了一个带有rpc服务定义的.proto。编译后我得到生成的源:所有消息都有一个实现接口(interface)的类。然而,服务本身并没有实现任何接口(interface)——它根本就没有生成。这就是我应该在我的服务器中实现的接口(interface)。我究竟做错了什么?我很确定gRPC文档没有提到这个问题。我的.proto服务:syntax="proto3";optionjava_multiple_files=true;optionjava_package="com.blah.my.rpc.api";optionjava_outer_classn

java - 编程接口(interface)和同步集合

这个问题与Java集合有关-特别是Hashtable和Vector-但也可能适用于其他地方。我在很多地方都读到过针对接口(interface)编程有多好,我100%同意。例如,在不考虑底层实现的情况下针对List接口(interface)进行编程的能力肯定有助于解耦和测试目的。对于集合,考虑到内部存储结构、随机访问时间等方面的差异,我可以看到ArrayList和LinkedList如何在不同情况下适用。然而,这两个实现可以在同一接口(interface)下使用……很棒。我似乎无法理解的是某些同步实现(特别是Hashtable和Vector)如何适应这些接口(interface)。对我来

java - 用作接口(interface)替代的内部类示例

我被告知,这激发了我对这个话题的好奇:JavaguiclassescanimplementhundredsofListenersandCallbacksandmanybooksteachyoutoimplementalltheseinterfacesinyourguiclass.Alternatively,theseaspectscanbeimplementedininnerclasses,somethodscalledbythatlistenersdonotgetmixedup.我想知道如何在没有内部类但有私有(private)类的ActionScript中执行此操作。但是,我不认为

Java 泛型 : Array containing generics

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Javahowto:GenericArraycreationErrorgenericarraycreation我的任务是用Java编写一个哈希表,它必须适用于任何数据类型。我正在编写的代码的规则如下:-哈希表必须有一个数组作为底层数据结构,其大小在构造对象时确定-当发生碰撞时,应该将发生碰撞的元素放入一个链表中,该链表保存哈希表中该索引(键)处的所有元素因此,对于底层数据类型,我制作了一个LinkedList类型的数组(自定义,不是JavaAPILinkedList)。privateLinkedList[]t

java - 我们可以创建 Runnable 的对象作为它的接口(interface)吗

我看到一个示例代码,其中使用了newRunnable()并且它是匿名内部类。Runnablerunnable=newRunnable(){publicvoidrun(){intoption=(int)(Math.random()*4);switch(option){case0:x.a();break;case1:x.b();break;case2:y.a();break;case3:y.b();break;}}};感谢任何帮助。我是新手。 最佳答案 是的。我们可以。这就是所谓的匿名内部类。不仅Runnable,您还可以匿名创建任何接

java - 如何为现有代码记录List接口(interface)方法

我现有的代码库有时会使用ArrayList或LinkedList,我需要找到一种方法来在调用添加或删除时进行记录,以跟踪已添加或删除的内容。确保我已登录的最佳方法是什么?例如。ArrayListlist=newArrayList();list.add(123);和LinkedListanotherNewList=newLinkedList();anotherNewList.add(333);不确定我是否可以拦截add方法来实现此目的,或者创建实现java.util.List接口(interface)的重写类然后改用它。无论哪种方式,我都在寻找一个好的解决方案,它需要最少的干预并且最好不

java - 在接口(interface)扩展中指定泛型

当用另一个接口(interface)扩展一个接口(interface)时,我应该为泛型类型指定具体类型吗?我的意思是,如果我有一个接口(interface):publicinterfaceRepo{Collectionsearch(Stringparams);Tget(Stringid);}然后是一大堆特定的Repositories,比如ClientRepo、CustomerRepo等......在什么时候指定类型T是否合理扩展此接口(interface),例如:publicinterfaceClientRepoextendsRepo{}publicinterfaceCustomerR

java - equals() 的实现 : compare against implemented interface or implementing class?

我一直想知道如何最好地为所有实现相同接口(interface)的类系列实现equals()(并且客户端应该只使用所述接口(interface)并且永远不知道实现类)。我还没有编写自己的具体示例,但JDK中有两个示例-java.lang.Number和java.lang.CharSequence可以说明该决定:booleanb1=newByte(0).equals(newInteger(0)));或使用CharSequencebooleanb2="".equals(newStringBuilder());理想情况下,您是否希望这些评估为真或假?这两种类型都实现了相同的数据类型接口(int

java - 如何扩展接口(interface)

我正在为界面编码。我有一个接口(interface)A和一个实现它的类B。我被告知我可以通过C扩展B的功能来覆盖它,但我被要求既不接触B也不接触C,然后在配置文件中将B替换为C作为A的实现类。我认为我需要一个在A中不可用的方法,所以我需要向A添加一个我可以在C。但我不允许触摸A。有人可以帮我解决这个问题吗?谢谢。编辑:示例代码:A.javapublicinterfaceA{voidX();voidY();}B.javapublicclassBimplementsA{publicvoidX(){//somethinginteresting}publicvoidY(){//somethin

java - 为什么class需要实现serializable marker interface进行序列化?

这个问题在这里已经有了答案:WhyJavaneedsSerializableinterface?(13个答案)关闭9年前。技术上我知道为什么类需要实现可序列化。原因是ObjectOutputStream的writeObject方法在写入对象状态之前在内部检查“可序列化实例”。但我的问题是,这样做有什么必要?writeObject方法可以简单的写出对象的状态无论对象(需要写的状态)是否实现了serializable?根据wiki,类实现此接口(interface)以指示其非transient数据成员可以写入ObjectOutputStream。但同样的问题是为什么类需要实现可序列化来确定