自从我与cssparser可怕的经验,我已经给自己设定了实现用Java编写的CSS解析器的任务蒸谷米.我已经涵盖了所有颜色规格,但当然我需要所有其他的......
所以,我去寻找CSS规范并在W3C网站上找到它.我现在正在为所有"原子"编写规则,但在本节中发现了令人不安的事情:
UNICODE-RANGE u\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})?
Run Code Online (Sandbox Code Playgroud)
打扰我的部分是问号[0-9a-f?].
段落标题说这里使用的正则表达式是Lex风格.在?有字符类(感谢@scizzo为确认)没有任何特殊含义.那么,这是W3C规范中的拼写错误,还是?真的允许在Unicode范围内?如果是,那是什么意思?
总结:我有答案.但是,规范是错误的:"问号unicode范围"只能是它本身.鉴于上述正则表达式,这个表达式将被允许,而它显然是非法的:u+4??-733f
在某些项目中,我使用经典ResourceBundle机制来获取与语言环境相关的消息(异常消息,信息消息等等).
但我有一些问题:
ResourceBundle可以返回一个Object;.setParent()不首先搜索父亲,但孩子).我知道可以编写代码来克服后两点; 但是,如果有一个库以更简单的方式处理消息,那就更好了!你知道吗?
我有一个树结构,我想创建一个JSON模式.
班级结构
class Node {
String id;
List<Node> children = new ArrayList<>();
}
Run Code Online (Sandbox Code Playgroud)
到目前为止的JSON模式:
{
"name": "node",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The node id",
"required": true
}
"children": {
"type": "array",
"items": {
//The items of array should be node ?
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我不知道如何"items"用JSON 描述数组的内容?
在此先感谢您的回答.
对于这个包,我接下来的步骤之一是编写一系列FileTypeDetector使方法Files.probeContentType()比默认方法更智能(默认提供的文件类型检测器仅依赖于"文件扩展名").
正如前面提到的方法的javadoc所提到的,这个方法依赖于FileTypeDetector在META-INF/services文件中声明的实例.
我首先使用一个简单的提供程序测试使用文件头检测PNG文件:
public final class PngFileTypeDetector
extends FileTypeDetector
{
private static final byte[] PNG_HEADER = {
(byte) 0x89,
(byte) 0x50, (byte) 0x4E, (byte) 0x47,
(byte) 0x0D, (byte) 0x0A,
(byte) 0x1A,
(byte) 0x0A
};
private static final int PNG_HEADER_SIZE = PNG_HEADER.length;
@Override
public String probeContentType(final Path path)
throws IOException
{
final byte[] buf = new byte[PNG_HEADER_SIZE];
try (
final InputStream in = Files.newInputStream(path);
) {
if (in.read(buf) != PNG_HEADER_SIZE)
return …Run Code Online (Sandbox Code Playgroud) 首先是一些上下文:下面粘贴的所有代码都在另一个声明为的类中public class TheClass extends SomeProprietaryClass.我不能出于各种原因在另一个文件中声明这些类...并且日志消息是法语.而且我是一个"最后快乐"的程序员.这是问题的核心......
现在,代码......(可能太多了 - 按要求剥离只保留相关部分)
自定义异常:
private static final class BreadCrumbException
extends Exception
{
private BreadCrumbException(final String message)
{
super(message);
}
private BreadCrumbException(final String message, final Throwable cause)
{
super(message, cause);
}
}
Run Code Online (Sandbox Code Playgroud)
用于"实现"面包屑元素可见性的枚举:
private enum Visibility
{
MAINPAGE("R"),
MENU("M"),
BREADCRUMB("A"),
COMMERCIAL("C");
private static final Map<String, Visibility> reverseMap
= new HashMap<String, Visibility>();
private static final String characterClass;
static {
final StringBuilder sb = new StringBuilder("[");
for (final Visibility v: values()) {
reverseMap.put(v.flag, v);
sb.append(v.flag);
} …Run Code Online (Sandbox Code Playgroud) 并行=“实例”:
TestNG 将在同一线程中运行同一实例中的所有方法,但两个不同实例上的两个方法将在不同线程中运行。
这句话怎么理解?
我试图在我的本地机器上配置几个gradle项目.这就是我做的:
命令行:
将目录更改为我要构建的项目.
./gradlew build
Run Code Online (Sandbox Code Playgroud)
它开始下载第一次非常正常.现在,每当我尝试构建此项目或使用相同版本的任何其他项目时,它首先下载gradle.
日食
我尝试导入Gradle项目,然后BuildModel它开始下载gradle,现在每次我尝试其他项目甚至尝试再次导入同一个项目时,它开始下载.
题?
这是正常的还是环境破裂了?如果以后是这种情况,我该如何解决?
我目前正在研究这个项目.它运作得非常好.
然而,在重新阅读README之后,我开始怀疑如何记录一些困扰我的东西......
引用这个例子,并忘记抛出异常,它的内容如下:
Files.list(somePath).map(Path::toRealPath).forEach(System.out::println)
Run Code Online (Sandbox Code Playgroud)
好.现在,Path涉及的方法就是这个.当然,我们没有通过任何LinkOption.
再说一遍:让我们忘记它抛出任何异常.
流的.map()需要Function作为参数.此接口用于Function<T, R>定义为:
R apply(T t);
Run Code Online (Sandbox Code Playgroud)
但我使用的方法不接受任何参数.乍一看,它似乎不匹配Function,对吗?除了那个...
它可以写成:
path -> path.toRealPath()
Run Code Online (Sandbox Code Playgroud)
因此,如果方法引用没有参数,或类似的东西,它看起来像使用的机制有点能够调用"流对象"上的方法...
我想相应地记录下来,我在这里遗漏了一些东西.
我错过了什么?
我想写的,其内容可以包含字符的文件格式,语法等非US-ASCII的。由于我习惯了ABNF,所以我尝试使用它......
但是,RFC 5234和7405中没有一个对不使用 US ASCII 的人非常友好。
事实上,我正在寻找一个面向字符而不是面向字节的 ABNF 版本(可能还有一些基本规则);RFC 5234 对此唯一要说的是第 2.4 节:
2.4. External Encodings
External representations of terminal value characters will vary
according to constraints in the storage or transmission environment.
Hence, the same ABNF-based grammar may have multiple external
encodings, such as one for a 7-bit US-ASCII environment, another for
a binary octet environment, and still a different one when 16-bit
Unicode is used. Encoding details are beyond the scope of ABNF, …Run Code Online (Sandbox Code Playgroud) 该的javadoc的Spliterator(这基本上是什么是真正的背后Stream,如果我理解正确的事情)定义了许多习性研究其意义如SIZED,CONCURRENT,IMMUTABLE等.
但它也定义了NONNULL; 为什么?
但是,我确定用户有责任确保这一点,例如,如果开发人员尝试.sort()使用无SORTED元素的非流媒体,他/她就会受到NPE的欢迎......
但是这个特征存在.为什么?的Javadoc,Spliterator本身并没有提到它的任何实际使用,而且也不该package-info.java在的java.util.stream包...
java ×7
grammar ×2
java-8 ×2
unicode ×2
abnf ×1
command-line ×1
css ×1
eclipse ×1
file-io ×1
final ×1
gradle ×1
gradlew ×1
java-stream ×1
javascript ×1
json ×1
jsonschema ×1
jsr203 ×1
lambda ×1
lex ×1
mime-types ×1
null ×1
testng ×1
tree ×1
zip ×1