小编Jia*_*hen的帖子

如何使用反射获取注释类名,属性值

我知道如果我们知道注释类,我们可以轻松获取特定的注释并访问它的属性.例如:

field.getAnnotation(Class<T> annotationClass) 
Run Code Online (Sandbox Code Playgroud)

这将返回特定注释界面的引用,因此您可以轻松访问它的值.

我的问题是,如果我对特定的注释类没有预先知识.我只想在运行时使用反射来获取所有注释类名及其属性,以便将类信息转储为例如json文件.我怎么能以简单的方式做到这一点.

Annotation[] field.getAnnotations();
Run Code Online (Sandbox Code Playgroud)

此方法仅返回注释接口的动态代理.

java reflection annotations

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

Run jest在ScriptTransformer._transformAndBuildScript中获得了"Unexpected string"

在Vuejs项目中,节点版本:v10.6.0

Package.json版本:

 "devDependencies": {
    "@vue/cli-plugin-babel": "^3.0.0-rc.4",
    "@vue/cli-plugin-unit-jest": "^3.0.0-rc.4",
    "@vue/cli-service": "^3.0.0-rc.4",
    "@vue/test-utils": "^1.0.0-beta.20",
    "babel-core": "7.0.0-bridge.0",
    "babel-jest": "^23.0.1",
    "vue-template-compiler": "^2.5.16"
  },
Run Code Online (Sandbox Code Playgroud)

当我使用内置任务运行它时,

"test:unit": "vue-cli-service test:unit"
Run Code Online (Sandbox Code Playgroud)

但是因为我想调试,所以我使用node命令手动运行:

node  node_modules/.bin/jest
Run Code Online (Sandbox Code Playgroud)

它给出以下错误:

 FAIL  tests/unit/HelloWorld1.spec.js
  ? Test suite failed to run

    .../tests/unit/HelloWorld1.spec.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import "core-js/modules/es6.array.iterator";
                                                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    SyntaxError: Unexpected string

      at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)
Run Code Online (Sandbox Code Playgroud)

之后我添加了.babelrc以及以下内容

{"env": {
    "development": {
        "plugins": ["transform-es2015-modules-commonjs"]
    },
    "test": {
        "plugins": ["transform-es2015-modules-commonjs"]
    }
}}
Run Code Online (Sandbox Code Playgroud)

事情变得更好了,它可以在没有"导入"的情况下传递测试文件,一旦导入,它将显示不同的错误:

....tests/unit/HelloWorld1.spec.js:3
    import _interopRequireWildcard from "..../node_modules/@babel/runtime/helpers/builtin/es6/interopRequireWildcard";
           ^^^^^^^^^^^^^^^^^^^^^^^

    SyntaxError: Unexpected identifier

      at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)
Run Code Online (Sandbox Code Playgroud)

vue.js jestjs

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

在JShell中,如何从Maven项目导入类路径

我正在开发一个本地Maven项目.如何jshell使用包含所有依赖项的项目类路径启动,以便我可以在JShell中测试项目或依赖项类.

classpath maven java-9 jshell

12
推荐指数
2
解决办法
2530
查看次数

在chrome扩展中,如何使用内容脚本注入一个Vue页面

我正在尝试实现一个 JSON 查看器 chrome 扩展。我已经使用 Vue ( http://treedoc.org )实现了查看器。现在的问题是如何使用 Chrome 扩展内容脚本注入 Vue 页面。

我发现这篇文章对于在扩展中注入普通的 javascript 文件非常有帮助。但这是一个已知的 javascript 文件名。

我发现这篇文章和这个vue-cli-plugin-browser-extension有助于将 Vue 用于扩展选项页面和覆盖页面等,因为它们的入口点是 HTML 文件。但是内容脚本入口点是一个javascript,要在内容脚本中注入一个javascript文件,你需要知道确切的文件名。使用插件和 Webpack,生成的 javascript 文件会附加哈希,例如“ override.0e5e7d0a.js ”,这是未知的。

javascript google-chrome-extension content-script vue.js

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

Python ElementTree 生成格式不正确的带有特殊字符“\x0b”的 XML 文件

我曾经ElementTree生成带有'\x0b'特殊字符的xml,然后minidom用来解析它。它会抛出not well-formed错误。

import xml.etree.ElementTree as ET
from xml.dom import minidom
root = ET.Element('root')
root.text='\x0b'
xml = ET.tostring(root, 'UTF-8')
print(xml)
pretty_tree = minidom.parseString(xml)
Run Code Online (Sandbox Code Playgroud)

生成的 XML<root>\x0b</root>

错误

Traceback (most recent call last):
  File "testXml.py", line 7, in <module>
    pretty_tree = minidom.parseString(xml)
  File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/xml/dom/minidom.py", line 1968, in parseString
    return expatbuilder.parseString(string)
  File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/xml/dom/expatbuilder.py", line 925, in parseString
    return builder.parseString(string)
  File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/xml/dom/expatbuilder.py", line 223, in parseString
    parser.Parse(string, True)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 1, column …
Run Code Online (Sandbox Code Playgroud)

python xml special-characters non-well-formed

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