小编soo*_*man的帖子

64
推荐指数
3
解决办法
5505
查看次数

Java 9接口与类

从Java 9会允许我们定义privateprivate static方法太接口,这将是在剩下的差异interfaceclass?而且,Java是否正在慢慢走向多重继承?

java java-9

41
推荐指数
3
解决办法
6478
查看次数

Java 8修改流元素

我想用Java 8编写纯函数,将集合作为参数,对该集合的每个对象应用一些更改,并在更新后返回一个新集合.我想遵循FP原则,所以我不想更新/修改作为参数传递的集合.

有没有办法使用Stream API而不先创建原始集合的副本(然后使用forEach或'normal'for循环)?

下面的示例对象,并假设我想将文本追加到其中一个对象属性:

public class SampleDTO {
    private String text;
}
Run Code Online (Sandbox Code Playgroud)

所以我想做类似下面的事情,但不修改集合.假设"列表"是一个List<SampleDTO>.

list.forEach(s -> {
    s.setText(s.getText()+"xxx");
});
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

14
推荐指数
3
解决办法
4万
查看次数

如何迭代对象数组列表并设置为java 8中的另一个对象列表?

目前我有来自该数组的对象数组列表我必须迭代并添加到我LatestNewsDTO在下面的代码工作中所做的事情列表,但我仍然不满意我的方式.他们有效的方式请告诉我.

谢谢

List<Object[]> latestNewses = latestNewsService.getTopNRecords(companyId, false, 3);
List<LatestNewsDTO> latestNewsList = new ArrayList();
latestNewses.forEach(objects -> {
    LatestNewsDTO latestNews = new LatestNewsDTO();
    latestNews.setId(((BigInteger) objects[0]).intValue());
    latestNews.setCreatedOn((Date) objects[1]);
    latestNews.setHeadLine((String) objects[2]);
    latestNews.setContent(((Object) objects[3]).toString());
    latestNews.setType((String) objects[4]);
    latestNewsList.add(latestNews); 
});
Run Code Online (Sandbox Code Playgroud)

java java-8

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

Java-将类型传递给超类静态方法

假设我有一个简单的课程:

public class TestClass
{
    public String field1 = "Field1";
    public String field2 = "Field2";
    public String field3 = "Field3";
}
Run Code Online (Sandbox Code Playgroud)

我的项目中有多个pojo类,我希望能够将每个对象序列化为json。因此,我创建了新Serializer类(用于序列化的gson):

public class Serializer
{
    public String toJson()
    {
        return new Gson().toJson(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的示例类扩展了Serializer

public class TestClass extends  Serializer
{
    public String field1 = "Field1";
    public String field2 = "Field2";
    public String field3 = "Field3";
}
Run Code Online (Sandbox Code Playgroud)

而且我可以Serializer通过调用toJson方法来序列化扩展类的任何对象,如下所示:

TestClass test1 = new TestClass();
String json =  test1.toJson();
Run Code Online (Sandbox Code Playgroud)

现在我想通过调用静态方法来构造类对象fromJson。所以我TestClass …

java generics inheritance types

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

如何在 Swagger 中将 Java8 LocalTime 显示为字符串?

我有swagger 2.8.0,我的 POJO 类如下,

public class Item {

   @JsonFormat(pattern="yyyy-MM-dd")
   private LocalDate date;

   @JsonFormat(pattern="HH:mm")
   private LocalTime time;

   // other fields and Getters and Setters are omitted for brevity
}
Run Code Online (Sandbox Code Playgroud)

现在在 swagger-ui 的示例值部分,我的 POJO 模型显示为

{
  "date": "string",
  "time": {
    "hour": 0,
    "minute": 0,
    "nano": 0,
    "second": 0
  }
}
Run Code Online (Sandbox Code Playgroud)

如何在 swagger-ui 中将 LocalTime 显示为字符串?

java swagger swagger-ui swagger-2.0

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

org.bouncycastle.jcajce.provider.asymmetry.DSTU4145$Mappings 类的 SecurityException

我正在使用 Spring boot 版本2.1.11spring-security-oauth2-autoconfigure 。在我的 中添加后pom.xml。运行应用程序时出现以下错误。

 "java.lang.SecurityException: class "org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings"'s signer information does not match signer information of other classes in the same package"
Run Code Online (Sandbox Code Playgroud)

java spring oauth-2.0 spring-boot

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

Joi - not.exist()?

我正在尝试与 Joi 进行验证,但遇到了无法实现的场景。我有一个对象。在某些情况下,对象会有一个 id(编辑),而在其他情况下它不会(创建)。

我想验证在“id”不存在的情况下,应该有几个其他字段。

到目前为止,我唯一有效的解决方案是当 id 为空并且根本没有丢失时。有没有办法匹配不存在的密钥,或者我应该将其更改为 null (有点 hacky)。

joi.object().keys({
  id: joi
    .number()
    .min(0)
    .allow(null),
  someOtherField1: joi.when("id", { is: null, then: joi.required() })
});
Run Code Online (Sandbox Code Playgroud)

先感谢您!

javascript validation typescript joi

5
推荐指数
2
解决办法
5069
查看次数

如何迭代for循环并添加到java 8中的列表?

我现在开始使用java8.我想知道如何迭代循环n次并添加到列表中:

List orderDayList = new ArrayList<>();
        IntStream.rangeClosed(1, 28).forEach(value -> {
            orderDayList.add(value);
        });
Run Code Online (Sandbox Code Playgroud)

上面的代码正在运行.这是正确的方法还是有其他方法可以实现?

谢谢

java for-loop java-8

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

Java中将字符串分成多行

我有一个长度为 n 的单行字符串,我想将其分成最多 3 行。每行最多可以有 45 个字符,之后我想添加一个换行符(“\n”)。第 3 行最多可以有 42 个字符,如果字符串超出这个范围,我需要包含 3 个点 (...),从而使第 3 行的总字符数也达到 45 个。

条件是换行符不应添加在单词中间。我如何有效地做到这一点?这个操作只是整个程序的一小部分,但是会被重复调用。所以我不确定我是否应该真正担心效率。

我现在正在做的是,我首先找出单词之间的空格在哪里,然后将其添加到列表中。然后,我迭代列表并找到 3 个索引,每个索引代表每行的结束词。因此,第一个索引将是最接近 45 的空格,第二个最接近 90,第三个最接近 135。然后,我使用这些索引来分割实际字符串,并分别添加“\n”和“...”。这是我的代码:

//maxCharsPerLine will be 45
public String splitString(String input, int maxCharsPerLine){    
        String output = "";
        ArrayList<Integer> spaces = new ArrayList<Integer>();

        // Logic to figure out after which word the sentence should be split so that we don't split in middle of a word
        for(int index = 0; index < input.length(); index++){
            if(input.charAt(index)==' '){
                spaces.add(index);
            } …
Run Code Online (Sandbox Code Playgroud)

java algorithm

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