草庐IT

INTERFACE

全部标签

java - 整洁建筑设计模式

https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html我对此模式有疑问。数据库位于外层,但实际上如何工作?例如,如果我有一个仅管理此实体的微服务:person{id,name,age}用例之一是管理人员。ManagePersons正在保存/检索/..Persons(=>CRUD操作),但是要做到这一点,Usecase需要与数据库对话。但这将违反依赖性规则TheoverridingrulethatmakesthisarchitectureworkisTheDependencyRule.Thisr

java - 为什么 InputStream 和 OutputStream 实现了 Closeable 而 Socket 没有?

在一个方法里看到过这个评论://IwonderwhySunmadeinputandoutputstreamsimplementCloseableandleftSocketbehind它将阻止创建实现Closeable的包装器匿名内部类,后者将其close方法委托(delegate)给Socket的实例。 最佳答案 Closeable是在Java5中引入的,而Socket是在JDK1.0中引入的。在Java7SocketwillbeCloseable.编辑您可以使用反射来关闭Java4/5/6中的任何“可关闭”对象,只需测试是否存在关

java - 如何使我的 Java Swing 应用程序成为客户端-服务器应用程序?

我制作了一个JavaSwing应用程序。现在我想让它成为一个客户端-服务器应用程序。当服务器上的数据发生变化时,所有客户端都应该得到通知,所以我不是在寻找Web服务。客户端-服务器应用程序将在单个LAN上运行,它是一个业务应用程序。服务器将包含一个数据库JavaDB。什么技术和库最容易上手?我应该使用套接字从头开始实现它,还是应该使用JavaRMI或JMS?还是有其他更容易入手的替代方案?有没有我应该使用的服务器库?Jetty是替代方案吗? 最佳答案 鉴于您已经有了应用程序,也许最简单的事情就是确定客户端和服务器之间所需的接口(in

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 - EJB中的代理对象

我正在阅读EnterpriseJavaBeans3.1这本书,我想知道我是否正确理解了EJB代理对象的概念。我现在知道它遵循代理模式并且我已经阅读了一些相关内容。当我们为bean创建接口(interface)时,我们这样做是因为我们希望实现代理模式。这对我们很有帮助,因为客户只关心我们能做什么,而不是直接绑定(bind)到一个类,而是一个可以充当真实对象的接口(interface)。因此,容器可能会实例化实现相应接口(interface)的代理对象,并在为我们调用真正的EJB之前添加一些魔术代码(网络代码),因为代理对象是自动生成的,对吗?我是不是误解了这个概念?如果是这样的话,有人能

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。但同样的问题是为什么类需要实现可序列化来确定

java - 函数接口(interface)作为 lambda 来对集合进行排序?

我正在研究lambda表达式,并且正在努力研究如何使用java.util.function.Function对集合进行排序。有人可以帮助我或给我一些关于如何实现这一目标的指示吗?我有一本书POJO和一个将书籍存储在集合中的类。我正在尝试使用Function接口(interface)的lambda表达式来返回相同但已排序的集合。我可以使用Collections.sort()并以这种方式返回它,但我认为有一种方法可以使用Function接口(interface)来完成。publicclassBookTable{privateMapbookMap;publicBookTable(){this

java - 具有通用签名的接口(interface)中的静态方法

从Java8开始,您可以在接口(interface)中实现默认或静态方法,如下所示publicinterfaceDbValuesEnumIface>{TfromId(IDid);IDgetId();staticStringgetDescriptionKey(){return"thisisatest";}}我想用具有签名的静态方法声明上述内容,该签名使用由实现类定义的边界,因为方法的实现对所有方法都应该相同,唯一不同的应该是泛型声明,如下所示:publicinterfaceDbValuesEnumIface>{publicstaticTfromId(IDid){if(id==null){