小编Amr*_*per的帖子

重构方法并删除额外的局部变量(删除绑定)

我有这门课:

public class User {
    private String name;
    private int age;
    //getters setters
}
Run Code Online (Sandbox Code Playgroud)

我有一个方法,它更新用户对象:

public void foo(User user) { 
    boolean needUpdate = false;
    
    if(needUpdateName(user.getName())) {
        user.setName("new name"); 
        needUpdate = true;
    }
    
    if(needUpdateAge(user.getAge())) {
        user.setAge(42);
        needUpdate = true; 
    }
    
    if(needUpdate) {
        userRepository.update(user);
    } 
}
Run Code Online (Sandbox Code Playgroud)

这是一个简单的例子,仅作为示例。如何重构这段代码并删除needUpdate变量?

java methods refactoring

6
推荐指数
1
解决办法
177
查看次数

如何以编程方式将边距中的 px 转换为 dp?

我陷入了困境,我不知道如何在 MarginLayout 中将 px 转换为 dp
所以这是我的主要 MarginLayout 设置方法

public static void setMargins (View v, int l, int t, int r, int b) {
    if (v.getLayoutParams() instanceof LinearLayout.MarginLayoutParams) {
        LinearLayout.MarginLayoutParams p = (LinearLayout.MarginLayoutParams) v.getLayoutParams();
        p.setMargins(l, t, r, b);
        v.requestLayout();
     }
}
Run Code Online (Sandbox Code Playgroud)

这是在元素更改其 marginLayout 的点击侦听器上

ArrowUp.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if(!Switch){
            setMargins(AdditionalOperations, 0, 0, 0, 800);
            Switch = true;
        }
        else{
            setMargins(AdditionalOperations, 0, 0, 0, 715);
            Switch = false;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我的目标是将像素转换为 Dp,并以 DP 值(而不是 px)作为边距。我真的陷入了困境,无法理解

java android constants android-linearlayout android-studio

2
推荐指数
1
解决办法
3471
查看次数

如何使用 Java Stream API 根据元素的属性对元素进行分组

我有一个自然数列表。如何使用 Java Stream API 对所有可被 3、5 和两者整除的数字进行分组?

例如:

ArrayList<Integer> list = new ArrayList<>();
list.add(24);
list.add(25);
list.add(45);
list.add(30);
list.add(3);
list.add(20);
list.add(5);
Run Code Online (Sandbox Code Playgroud)

我想要 l3 = [3,24] ,l5 = [5,20,25],l35 = [45,30]

另外,我不想groupingBy()在名单上打电话三遍,因为名单真的很大。

java java-stream

2
推荐指数
1
解决办法
368
查看次数

未批准此客户端应用程序的回调URL

Twitter SDK 3.1.0

我的Android应用程序崩溃,这是日志中的错误

代码":415,"message":"未批准此客户端应用程序的回调URL.可以在应用程序设置中调整已批准的回调URL

我在doc中搜索了解决方案,我发现了这条消息

如果您使用尚未列入白名单的回调网址,您将收到以下错误消息

我尝试了一切,没有任何效果

我该怎么办?

java twitter android

1
推荐指数
1
解决办法
908
查看次数

改造调用总是转到 onFailure

我正在尝试从后端服务获取信息,并且我正在使用 Retrofit 来获取响应。

这是我的改造单例类,我使用了一个随机 api 作为示例。我在启动服务时使用自己的。

import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class BaseRetrofit {
    private static Retrofit retrofitInstance = null;
    private BaseRetrofit() {};

    public static Retrofit getRetrofitInstance() {

        if (retrofitInstance == null) {
            retrofitInstance = new Retrofit.Builder()
                    .baseUrl("http://192.168.1.155:5000")
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }

        return retrofitInstance;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的主课程中,我初始化改造并拨打电话。

EndPoints myEndPoints = BaseRetrofit.getRetrofitInstance().create(EndPoints.class);
Call<List<JobItem>> jobs = myEndPoints.getJobs();

jobs.enqueue(new Callback<List<JobItem>>() {
    @Override
    public void onResponse(Call<List<JobItem>> call, Response<List<JobItem>> response) {
        Log.d("SUCCESS", "LOADED JSON " + response.body().get(0).getJobType());
    }

    @Override
    public void onFailure(Call<List<JobItem>> call, Throwable t) { …
Run Code Online (Sandbox Code Playgroud)

java android call retrofit

1
推荐指数
1
解决办法
65
查看次数