小编fge*_*fge的帖子

我怎样才能修复这个composer.json错误

JSON错误

[Composer\Json\JsonValidationException]
“./composer.json”与预期的 JSON 模式不匹配:
- 属性名称是必需的
- 属性描述是必需的

我尝试通过谷歌进行梳理,尝试重新安装作曲家,我不知道如何修复这个错误。

json laravel composer-php

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

Short和Character除了处理之外有什么区别?

据我所知:

  • "逐字",看起来它们是相同的(它们都是2个字节长);
  • Character但是,它有更多的处理(静态.isLetter()方法和其他等).

虽然我的问题可能听起来很愚蠢,但它们是:

  • 除非我的第一个假设是错误的,为什么有原始类型char,short因为它们具有相同的"内部长度",无论如何,Java中没有无符号的原始类型?
  • Shortfinal,如果不是,可以Character延长Short

编辑:答案给我错了:有在Java中一个未签名的原始类型,这是... char.

编辑2:@PatriciaShanahan还提到在算术运算中,char行为类似于无符号16位整数,就像a short.这包括左移,即,符号位一起携带,就像对short.

java

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

在Java中查找嵌套匹配的HTML标记

我在Java中使用有效的HTML字符串(使用jsoup解析,因此所有标签都有结束标记并且形成良好),我需要查找给定标记名称的内容,例如,使用以下内容串:

<p> hi! </p>
<p> hi again! </p>
<h1> foo </h1>
<p> bye! </p>
Run Code Online (Sandbox Code Playgroud)

鉴于标签'p',我期望的结果是:

1)<p> hi! </p>
2)<p> hi again! </p>
3)<p> bye! </p>
Run Code Online (Sandbox Code Playgroud)

我通过简单地使用apache.commons.lang库和StringUtils.substringsBetween(String html,String"opentag",String"endtag")方法来完成这一点,该方法将返回一个具有所需结果的String数组.但是,当我搜索嵌套了完全相同标签的标签时(常见的例子是div)我会得到错误的结果(我理解为什么)

例如,使用...

<div>
 <p> hey there </p>
 <div>  
  <div>
   <p> asd </p>
  </div>
 </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我期待3个结果:1)

<div>
 <p> hey there </p>
 <div>  
  <div>
   <p> asd </p>
  </div>
 </div>
</div>
Run Code Online (Sandbox Code Playgroud)

2)

<div>  
 <div>
  <p> asd </p>
 </div>
</div>
Run Code Online (Sandbox Code Playgroud)

3)

<div>
 <p> asd </p>
</div>
Run Code Online (Sandbox Code Playgroud)

但是我得到一个(我知道它是因为标签出现在String中的方式)我只是不知道如何解决它.我现在已经苦苦挣扎了两个星期了,我已经尝试过使用正则表达式而没有任何成功,我也尝试将html字符串拆分为一系列行,但也失败了.

你会如何解决这个问题?我已经知道有很多库使用jsoup的getAllElementsByTag(tagName)等方法为你做这件事,但我想自己做.任何提示都表示赞赏!

html java tags jsoup

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

我使用Guava的不可变集合(为Java 6编译)和Java 8 JRE,我可以使用新的流接口吗?

我使用Guava,特别是他们的不可变集合(ImmutableList,ImmutableSet).

但是Guava是为Java 6编译的.如果我使用Java 8,我可以使用.stream()它们吗?

java collections guava java-8

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

Files.getLastModifiedTime()是否泄漏了内存?

我遇到过一个错误,其中一个服务器应用程序每秒使用越来越多的内存,我已经设法筛选出一个仍然显示该行为的简短示例:

public class TestGetLastModifiedTime {
    private static final Path PATH = Paths.get("D:\\test.txt");
    private static final ScheduledExecutorService SCHEDULER = Executors.newScheduledThreadPool(1);

    public static void main(String[] args) {
        SCHEDULER.scheduleAtFixedRate(() -> getLastModifiedTime(), 0, 1, TimeUnit.SECONDS);
    }

    private static void getLastModifiedTime() {
        try {
            FileTime lastModifiedTime = Files.getLastModifiedTime(PATH);
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在Windows 8.1和Java 8u20上运行.

通过VisualVM,我观察到最大堆大小不会增长,堆本身也会不断增加.同时我在Windows任务管理器中观察到生成的java.exe进程每秒都在使用(保留)更多内存.

有趣的是,当我从VisualVM中执行GC时,所有使用的堆内存都会重置为几乎为零,并且java.exe进程的已用内存不会像预期那样收缩,因为它被认为是保留的.

但是,GC完成后,内存使用量仍然每秒都在增加,而现在肯定有足够的可用堆空间.

Metaspace也不受影响.

对我来说这真的很有气味,看起来像JVM有内存泄漏.

任何人都可以帮助我解释这里发生了什么吗?

java jvm memory-leaks java-8 java.nio.file

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

Java的ResourceBundle的轻量级替代品?

在某些项目中,我使用经典ResourceBundle机制来获取与语言环境相关的消息(异常消息,信息消息等等).

但我有一些问题:

  • 它对我的口味来说太"重量级"了; 例如,虽然我只需要字符串,但是ResourceBundle可以返回一个Object;
  • 处理非现有密钥很差(未经检查的异常,而不是返回密钥本身);
  • 你可以堆叠捆绑,但不是我想要的方式(添加父亲使用.setParent()不首先搜索父亲,但孩子).

我知道可以编写代码来克服后两点; 但是,如果有一个库以更简单的方式处理消息,那就更好了!你知道吗?

java resourcebundle

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

使用正则表达式,如何有效地匹配双引号与嵌入双引号之间的字符串?

让我们有一个文本,我们希望在双引号之间匹配所有字符串; 但在这些双引号内,可以引用双引号.例:

"He said \"Hello\" to me for the first time"
Run Code Online (Sandbox Code Playgroud)

使用正则表达式,您如何有效地匹配它?

regex

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

在IDEA中,如何为javadoc链接启用autoimport?

在为类编写Javadoc时,当我希望添加到另一个类的链接时,我输入:

{@link SomeCl<TAB>}
Run Code Online (Sandbox Code Playgroud)

并且IDEA完全导入完成,即它将产生{@link com.foo.SomeClass}; 之后才能选择"替换为导入".

有没有办法告诉IDEA在这种情况下使用进口?

(这对于代码自动执行更令人沮丧...只是不是Javadoc)

java javadoc intellij-idea

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

为什么Java的CharsetEncoder定义.onMalformedInput()/ CharsetDecoder定义.onUnmappableCharacter()?

A CharsetDecoder基本上有助于将序列解码byteschars 序列(参见参考资料Charset#newDecoder()).另一方面,a CharsetEncoder(参见Charset#newEncoder())反过来:取一系列chars,并将它们编码为bytes 序列.

CharsetDecoder定义.onMalformedInput()并且它看似合乎逻辑(某些字节序列可能无法转换为有效char序列); 但为什么.onUnmappableCharacter()因为它的输入是一个字节序列?

同样,CharsetEncoder定义.onUnmappableCharacter()哪个是逻辑(例如,如果你的字符集是ASCII,你不能编码ö); 但为什么它也定义,.onMalformedInput()因为它的输入是一个字符序列?

这是更有趣的,你不能从解码器获得编码器,反之亦然,这两个类似乎没有共享一个共同的祖先......


编辑1

确实有可能触发.onMalformedInput()a CharsetEncoder.你"只是"必须提供非法charchar序列.下面的程序依赖于以下事实:在UTF-16中,高代理人必须遵循低代理人; 在这里,使用两个高代理构建一个双元素字符数组,并尝试对其进行编码.注意如何String从这样一个格式错误的char序列创建一个不会引发任何异常:

码:

public static void main(final String... args)
    throws CharacterCodingException
{
    boolean found = false;
    char c = '.';

    for (int i = 0; i < 65536; …
Run Code Online (Sandbox Code Playgroud)

java character-encoding

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

这是从日期获取UTC的java.sql.Timestamp的正确方法吗?

我开发了一个SonarQube插件,为了满足我的一个需求,我需要将项目的分析日期存储为SQL TIMESTAMP(请注意: a TIMESTAMP,而不是 a TIMESTAMP WITH TIMEZONE).

以下是我目前的工作方式:

// In the SonarQube Sensor
// .getAnalysisDate() returns a java.util.Date
final Instant instant = module.getAnalysisDate().toInstant();

// Timestamp at UTC from the Instant
final LocalDateTime dt = LocalDateTime.frominstant(instant, ZoneOffset.UTC);
final Timestampt ts = Timestamp.valueOf(dt);
Run Code Online (Sandbox Code Playgroud)

抓住Instant的概念我有点麻烦,还有ZonedDateTime等......

无论如何,这似乎做我想要的,但这是正确的方法吗?

java java-8 java-time

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