我正在尝试使用Java( 而不是XML )来创build一个带有填充屏幕的button的LinearLayout,并且有边距。 这是没有利润的代码: LinearLayout buttonsView = new LinearLayout(this); buttonsView.setOrientation(LinearLayout.VERTICAL); for (int r = 0; r < 6; ++r) { Button btn = new Button(this); btn.setText("A"); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); // Verbose! lp.weight = 1.0f; // This is critical. Doesn't work without it. buttonsView.addView(btn, lp); } ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT); setContentView(buttonsView, […]
在以下代码片段中: public class a { public void otherMethod(){} public void doStuff(String str, InnerClass b){} public void method(a){ doStuff("asd", new InnerClass(){ public void innerMethod(){ otherMethod(); } } ); } } 是否有一个关键字来引用内部类的外部类? 基本上我想要做的是outer.otherMethod() ,或类似的东西,但似乎无法find任何东西。
我被问了一个问题,我想在这里回答我的答案。 问:在哪种情况下,扩展抽象类而不是实现接口更合适? 答:如果我们使用模板方法devise模式。 我对么 ? 如果我无法清楚地说出问题,我感到抱歉。 我知道抽象类和接口的基本区别。 1)当需求是这样的时候,使用抽象类:我们需要在每个子类中为特定的操作(实现该方法)实现相同的function,并且为其他一些操作(只有方法签名) 2)使用接口,如果你需要把签名放在同一个(和实现不同),以便你可以遵守接口的实现 3)我们可以扩展一个抽象类的最大值,但可以实现多个接口 重申一个问题:除了上面提到的那些,还有没有其他的场景需要使用抽象类(一种是模板方法devise模式只是基于这个概念)? 接口与抽象类 在这两者之间进行select,取决于你想要做什么,但对我们来说幸运的是,Erich Gamma可以帮助我们一点。 和往常一样有一个权衡,一个接口给你基础类的自由 ,一个抽象类给你随后添加新方法的自由 。 – Erich Gamma 你不能去改变一个接口,而不必在你的代码中改变很多其他的东西 ,所以唯一的方法就是创build一个全新的接口,这可能不是一件好事。 Abstract classes应主要用于密切相关的对象。 Interfaces更好地为不相关的类提供通用的function。
在Java中,在下面的代码中有或没有System.exit(0)有什么区别? public class TestExit { public static void main(String[] args) { System.out.println("hello world"); System.exit(0); // is it necessary? And when it must be called? } } 该文件说:“这个方法永远不会正常返回。” 这是什么意思?
int i =132; byte b =(byte)i; System.out.println(b); 输出是-124 这是为什么? 我知道这是一个非常基本的问题,但是我仍然无法对其进行映射,或者了解这是怎么回事?
我正在尝试获取请求中正在发送的确切的JSON。 这是我的代码: OkHttpClient client = new OkHttpClient(); client.interceptors().add(new Interceptor(){ @Override public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { Request request = chain.request(); Log.e(String.format("\nrequest:\n%s\nheaders:\n%s", request.body().toString(), request.headers())); com.squareup.okhttp.Response response = chain.proceed(request); return response; } }); Retrofit retrofit = new Retrofit.Builder() .baseUrl(API_URL) .addConverterFactory(GsonConverterFactory.create()) .client(client).build(); 但是我只在日志中看到这个: request: com.squareup.okhttp.RequestBody$1@3ff4074d headers: Content-Type: application/vnd.ll.event.list+json 我该如何做适当的日志logging,因为删除了我们用于Retrofit 1的setLog()和setLogLevel() ?
我试图在Java中模仿这个curl命令的function: curl –basic –user username:password -d "" http://ipaddress/test/login 我使用Commons HttpClient 3.0编写了以下内容,但不知何故最终从服务器获得了500 Internal Server Error 。 有人可以告诉我,如果我做错了什么? public class HttpBasicAuth { private static final String ENCODING = "UTF-8"; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { HttpClient client = new HttpClient(); client.getState().setCredentials( new AuthScope("ipaddress", 443, "realm"), […]
两个接口具有相同的方法名称和签名。 但是由一个类实现,那么编译器将如何识别哪个接口是哪个方法? 例如: interface A{ int f(); } interface B{ int f(); } class Test implements A, B{ public static void main(String… args) throws Exception{ } @Override public int f() { // from which interface A or B return 0; } }
我有几个方法应该在某些input上调用System.exit() 。 不幸的是,testing这些情况导致JUnit终止! 把方法调用放在一个新的线程中似乎没有什么帮助,因为System.exit()终止了JVM,而不仅仅是当前的线程。 有没有处理这个问题的共同模式? 例如,我可以替代System.exit()的存根吗? [编辑]有问题的类实际上是一个命令行工具,我试图在JUnit里面testing。 也许JUnit根本就不是这个工作的正确工具? 对于互补回归testing工具的build议是受欢迎的(最好是与JUnit和EclEmma很好地结合的东西)。
null和"" (空string)有什么区别? 我写了一些简单的代码: String a = ""; String b = null; System.out.println(a==b); // false System.out.println(a.equals(b)); // false 这两个语句都返回false 。 看来,我无法find它们之间的实际区别。