gpt4 book ai didi

java - 具有不同对象类型的重复代码

转载 作者:行者123 更新时间:2023-12-02 01:59:10 25 4
gpt4 key购买 nike

我必须多次编写下面的代码,这违反了“DRY”原则(在 IntelliJ 中收到有关重复代码的警告)。唯一改变的是传递给 objectMapper.writeValueAsString()

的内容

我如何将其放入一个接受不同对象类型的函数中,这样我就不会违反 DRY?我不知道要查找什么概念,所以如果这是重复的帖子,我深表歉意。谢谢。

try(CloseableHttpClient client = HttpClients.createDefault()){
ObjectMapper objectMapper = new ObjectMapper();
String bodyRequest = objectMapper.writeValueAsString(id);
StringEntity entity = new StringEntity(bodyRequest, ContentType.APPLICATION_JSON);
HttpPut request = new HttpPut(url);
request.setEntity(entity);

try(CloseableHttpResponse response = client.execute(request)){
int statusCode = response.getStatusLine().getStatusCode();

if(statusCode != HttpStatus.SC_OK){
System.err.println(statusCode + ": " + response.getStatusLine().getReasonPhrase());
}
}
}
catch(Exception e){
throw new RuntimeException(e);
}

最佳答案

把它变成一个方法就可以了。确保传递到该方法中的任何内容实际上都是可序列化的。

public Object doSomething(Object id) {
try(CloseableHttpClient client = HttpClients.createDefault()){
ObjectMapper objectMapper = new ObjectMapper();
String bodyRequest = objectMapper.writeValueAsString(id);
StringEntity entity = new StringEntity(bodyRequest, ContentType.APPLICATION_JSON);
HttpPut request = new HttpPut(url);
request.setEntity(entity);

try(CloseableHttpResponse response = client.execute(request)){
int statusCode = response.getStatusLine().getStatusCode();

if(statusCode != HttpStatus.SC_OK){
System.err.println(statusCode + ": " + response.getStatusLine().getReasonPhrase());
}
}
}
catch(Exception e){
throw new RuntimeException(e);
}
}

关于java - 具有不同对象类型的重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51888614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com