我知道如果我们知道注释类,我们可以轻松获取特定的注释并访问它的属性.例如:
field.getAnnotation(Class<T> annotationClass)
Run Code Online (Sandbox Code Playgroud)
这将返回特定注释界面的引用,因此您可以轻松访问它的值.
我的问题是,如果我对特定的注释类没有预先知识.我只想在运行时使用反射来获取所有注释类名及其属性,以便将类信息转储为例如json文件.我怎么能以简单的方式做到这一点.
Annotation[] field.getAnnotations();
Run Code Online (Sandbox Code Playgroud)
此方法仅返回注释接口的动态代理.
在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) 我正在开发一个本地Maven项目.如何jshell使用包含所有依赖项的项目类路径启动,以便我可以在JShell中测试项目或依赖项类.
我正在尝试实现一个 JSON 查看器 chrome 扩展。我已经使用 Vue ( http://treedoc.org )实现了查看器。现在的问题是如何使用 Chrome 扩展内容脚本注入 Vue 页面。
我发现这篇文章对于在扩展中注入普通的 javascript 文件非常有帮助。但这是一个已知的 javascript 文件名。
我发现这篇文章和这个vue-cli-plugin-browser-extension有助于将 Vue 用于扩展选项页面和覆盖页面等,因为它们的入口点是 HTML 文件。但是内容脚本入口点是一个javascript,要在内容脚本中注入一个javascript文件,你需要知道确切的文件名。使用插件和 Webpack,生成的 javascript 文件会附加哈希,例如“ override.0e5e7d0a.js ”,这是未知的。
我曾经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) vue.js ×2
annotations ×1
classpath ×1
java ×1
java-9 ×1
javascript ×1
jestjs ×1
jshell ×1
maven ×1
python ×1
reflection ×1
xml ×1