为什么在Java中默认的接口variables是静态的和最终的?
前段时间,我遇到了一段代码,它使用了一些标准的Javafunction来定位实现给定接口的类。 我知道函数隐藏在一些非逻辑的地方,但是它们可以用于其他类,如包名所暗示的。 当时我不需要它,所以我忘记了,但现在我做了,我似乎无法再次findfunction。 哪里可以find这些function? 编辑:我不寻找任何IDEfunction或任何东西,而是可以在Java应用程序内执行的东西。
所以可以说我有这个接口: public interface IBox { public void setSize(int size); public int getSize(); public int getArea(); //…and so on } 我有一个实现它的类: public class Rectangle implements IBox { private int size; //Methods here } 如果我想使用接口IBox,我实际上不能创build它的一个实例,方式如下: public static void main(String args[]) { Ibox myBox=new Ibox(); } 对? 所以我实际上必须这样做: public static void main(String args[]) { Rectangle myBox=new Rectangle(); } […]
(1) List<?> myList = new ArrayList<?>(); (2) ArrayList<?> myList = new ArrayList<?>(); 我明白,在(1)中, List接口的实现可以交换。 看来,(1)通常在应用程序中使用而不pipe需要(我自己总是使用它)。 我想知道是否有人使用(2)? 另外,这种情况实际上需要多久使用(1)over(2)(例如where(2)不足),除了接口和最佳实践的 编码外,
在C#中隐式和显式实现接口有什么区别? 什么时候应该使用隐式,何时应该使用explicit? 这两者有没有优点和/或缺点? 微软官方指南(从第一版的框架devise指南 )指出, 不build议使用显式实现 ,因为它给代码带来了意想不到的行为。 我认为这个指南在IoC之前是非常有效的 ,当你不把它作为接口传递的时候。 任何人都可以碰到这方面呢?
什么时候应该使用接口,何时应该使用基类? 如果我不想实际定义方法的基本实现,它应该总是一个接口吗? 如果我有一个狗和猫课。 为什么要实现IPet而不是PetBase? 我可以理解为ISheds或IBarks(IMakesNoise?)的接口,因为这些可以放在一个宠物的宠物的基础上,但我不明白哪个用于通用的宠物。
在阅读有关设计模式的时候,就会碰到这个短语。 但我不明白,有人能解释一下吗?
我想在Android中使用XML文件来定义一个GUI布局。 据我所知,没有办法指定你的小部件应该在XML文件中使用一个自定义的字体(例如你放置在assets / font /中的字体),你只能使用系统安装的字体。 我知道,在Java代码中,我可以使用唯一ID手动更改每个小部件的字体。 另外,我可以迭代Java中的所有小部件来做这个改变,但是这可能会很慢。 我还有什么其他的选择? 有没有更好的方法来制作自定义外观的小部件? 我不特别想要手动更改我添加的每个新小部件的字体。