本文将带您了解关于在具有可空返回类型的方法上将@Nullable放在哪里?的新内容,另外,我们还将为您提供关于.net–NullableEnum可空类型问题、.NET中可空值类型【Nullable】实
本文将带您了解关于在具有可空返回类型的方法上将@Nullable放在哪里?的新内容,另外,我们还将为您提供关于.net – Nullable Enum可空类型问题、.NET中可空值类型【Nullable
- 在具有可空返回类型的方法上将@Nullable放在哪里?
- .net – Nullable Enum可空类型问题
- .NET中可空值类型【Nullable
】实现原理 - c – 如果`f`具有非空返回类型 – 如何重构这个模式,返回`f`的结果?
- C# 8 - Nullable Reference Types 可空引用类型
在具有可空返回类型的方法上将@Nullable放在哪里?
当使用javax.annotation.Nullable
将方法标记为“潜在的返回null
值”,其中把@Nullable
注释?在方法上还是返回类型?
有什么技术差异,还是严格说来是样式问题?
风格A:
@Nullablepublic Object blah() { ... }
风格B:
public @Nullable Object blah() { ... }
答案1
小编典典严格来说,这是一个样式问题。
无论您在源代码中的何处编写注释,注释实际上都在方法上。这是因为@Target
对的定义进行了元注释javax.annotation.Nullable
,从而使javax.annotation.Nullable
方法成为注释。您可以在任何位置编写注释,因为Java语言规范语法允许方法注释中插入方法修饰符,例如public
。
我认为将批注放置在返回类型之前更加清晰。毕竟,返回类型为非null。说一个方法本身是非空的没有意义。
在返回类型之前放置注释还有另一个重要的好处:您的代码与Nullable
定义为类型注释的版本兼容。类型注释是Java
8中引入的。它们比方法注释更具表现力,并且可以进行更强大的检查。例如,Nullable
Eclipse和Checker
Framework支持的注释是类型注释。
.net – Nullable Enum可空类型问题
编译错误:
无法确定条件表达式的类型,因为”和’MyEnum’之间没有隐式转换
源代码
public enum MyEnum { Value1,Value2,Value3 } public class MyClass { public MyClass() {} public MyEnum? MyClassEnum { get; set; } } public class Main() { object x = new object(); MyClass mc = new MyClass() { MyClassEnum = Convert.Isdbnull(x) : null ? (MyEnum) Enum.Parse(typeof(MyEnum),x.ToString(),true) }; }
如何解决这个错误?
解决方法
int? i; i = shouldBeNull ? null : (int?) 123;
所以:
MyClassEnum = Convert.Isdbnull(x) ? null : (MyEnum?) Enum.Parse(typeof(MyEnum),true)
.NET中可空值类型【Nullable】实现原理
为了让.Net中的值类型可以赋值为null,微软特地添加了Nullable<T>类型,也可简写为T?。但是Nullable<T>自身是结构体,也是值类型,那么它是如何实现将null赋值给值类型的呢?
下面通过自定义一个可空值类型来讲解Nullable<T>的实现原理。
自定义可空值类型
struct XfhNullable<T> where T : struct { private T innerValue; //这个属性很重要 public bool HasValue { set; get; } public T Value { get { return HasValue ? innerValue: throw new InvalidOperationException(); } } public XfhNullable(T value) { this.innerValue= value; HasValue = true; } public T GetValueOrDefault(T value) { return HasValue ? this.innerValue: value; } public T GetValueOrDefault() { return this.innerValue; } }
一个可空值类型的结构体大致功能已经定义好了,下面我们来创建可空值类型的实例来验证下。
using static System.Console; class Program { static void Main() { //使用结构体默认的无参构造函数进行实例化 XfhNullable<int> num = new XfhNullable<int>(); WriteLine(num.HasValue); WriteLine(null_num.GetValueOrDefault()); } }
可以看到,变量num并不含有值,调用GetValueOrDefault()则会获取它的默认值 0;
这时我们将null赋值给变量num会发现编译器报错Cannot convert null to ''XfhNullable<int>'' because it is a non-nullable value type这是因为编译器把我们定义的结构体XfhNullable<T>看作是普通值类型而非可空值类型,所以我们还要添加可空值类型和XfhNullable<T>之间的转换功能。
public static implicit operator XfhNullable<T>(T? nullabelValue) { if (nullabelValue== null) { return new XfhNullable<T>(); } return new XfhNullable<T>(nullabelValue.Value); }
上面的代码实现了可空值类型向XfhNullable<T>的隐式转换,添加上面代码之后发现编译器不再报错。XfhNullable<T>已经成为一个可为null的值类型。
static void Main() { XfhNullable<int> null_num = null; WriteLine(null_num.HasValue); }
XfhNullable<T>中的属性HasValue的作用就是标记当前类型是否为null,若是则返回False,否则返回True。当HasValue为False时调用该类型的Value属性则会抛出异常InvalidOperationException。但可调用GetValueOrDefault()方法来获取类型的默认值。
Nullable<T>类型可以通过运算符==来判断值是否为null,我们也可以通过运算符重载来实现该功能:
public static bool operator ==(XfhNullable<T> cn, object obj) { if (cn.HasValue) { return false; } return true; } public static bool operator !=(XfhNullable<T> cn, object obj) { return !(cn == obj); }
static void Main() { XfhNullable<int> null_num = null; WriteLine(null_num == null); }
接下来,我们来实现普通值类型和XfhNullable<T>之间的转换:
public static implicit operator XfhNullable<T>(T value) { return new XfhNullable<T>(value); } public static explicit operator T(XfhNullable<T> value) { return value.innerValue; }
static void Main() { XfhNullable<int> null_num = null; null_num = 12;//int类型隐式转换为XfhNullable<int>类型 WriteLine(null_num == null); WriteLine(null_num.Value); int i = (int)null_num;//XfhNullable<int>类型强制转换为int类型 WriteLine(i); }
获取实例在运行时的类型:
static void Main() { XfhNullable<int> null_num = 12; WriteLine(null_num.GetType()); }
这个返回值不大友好,我们希望这里返回内置的值类型,System.Int32,具体实现代码如下:
//因为Object类中的GetType方法不允许子类重写(避免子类隐藏自己的实际类型) //所以这里使用关键字new来隐藏Object类中的GetType方法 public new Type GetType() { return innerValue.GetType(); }
结论:没有可为空的值类型
至此,我们已经自定义了一个可为空的值类型XfhNullable<T>,通过以上代码,我们不难发现所谓可为空的值类型是不存在的,它是通过属性HasValue来对null值进行标记的,其内部通过字段innerValue(该字段对应Nullable<T>中的value字段)来维护该类型的值,若被赋值为null则innerValue初始化为值类型的初始值。换句话说,Nullable<T>只是在逻辑层面上实现了把null赋值给值类型,给我们一种值类型可为null的感觉。
最后说下可空值类型的装箱与拆箱。
CLR在对Nullable<T>实例执行装箱操作时首先检查它是否为null,若是则CLR不装箱任何东西而是直接返回null;若实例的值不是null则获取该实例的值(Value属性)并对这个值进行装箱操作。
拆箱时,对于null则返回一个Nullable<T>()实例,对于一个具体的数值,如5,则返回Nullable<T>(5)实例。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
- 详解c# 可空类型(Nullable)
- C#难点逐个击破(8):可空类型System.Nullable
- 用法详解" target="_blank">可空类型Nullable<T>用法详解
c – 如果`f`具有非空返回类型 – 如何重构这个模式,返回`f`的结果?
>在调用f前执行一些代码.
>调用f().
>调用f后执行一些代码.
>如果f不返回void返回f的结果值.
由于上述第四点,小代码实施步骤困扰了我,
template <typename TF>auto step(TF&& f){ // Execute some actions before `f`. do_something(); using f_return_type = decltype(f()); return static_if(std::is_same<f_return_type,void>{}) .then([](auto&& xf) mutable { // Do not return anything if `xf` returns void. xf(); // Execute some actions after `f`. do_something_after_f(); }) .else_([](auto&& xf) mutable { auto result = xf(); // Execute some actions after `f`. do_something_after_f(); return result; })(std::forward<TF>(f));}
(注意重复调用f和do_something_after_f.)
我必须使用某种条件编译时(模板专门化或者static_if,如示例所示)根据f的返回类型进行分支.
理想情况下,我想这样编译:
template <typename TF>auto step(TF&& f){ // Execute some actions before `f`. do_something(); decltype(auto) eventual_result = f(); // Execute some actions after `f`. do_something_after_f(); return result;}
但是它不是,因为finalual_result可以是void,这是一个不完整的类型.
有没有任何重构这个代码的方式,以避免重复调用f()和do_something_after_f()?
解决方法
struct Cleanup { ~Cleanup() { do_something_after_f(); }} cleanup;return f(); // it's legal to return a void expression in C++
C# 8 - Nullable Reference Types 可空引用类型
在写C#代码的时候,你可能经常会遇到这个错误:
但如果想避免NullReferenceException的发生,确实需要做很多麻烦的工作。
可空引用类型 Null Reference Type
所以,C# 8的可空引用类型就出现了。
C# 8可以让你在编译时就避免null引用错误,它并不是把null值从代码里移除了,而是它可以让你表达意图。具体的做法就是你可以告诉编译器哪个引用可能是null的,而哪些引用不可能是null。
看下面这个例子:
很显然,我们期待person这个参数它不可以是null的。
但是在C# 8之前,如果我们这样调用该方法,那么在编译时是不会报错的:
而如果运行程序,那么结果就是:
打开null检查
而在Visual Studio 2019里面(C# 8的项目),修改项目文件,添加null检查之后:
这里就会出现警告。
例子:
有两个类,Person类的Address属性的类型是另外一个类:
现在可以看到,这些属性都出现了波浪线的警告,如果我们build一下这个项目,那么也会出现很多警告:
这是因为我们把这两个类的成员声明称了非null的引用类型,而我却没有对它们进行初始化。
成员可能是null的
如果我想让这些成员可以为null(意图上),那么就需要把它们设置为可null的(意图),在类型后边加上问号“?”即可:
再次build项目之后,警告都没有了:
然后再看一下这个方法:
这里person.Address.Province有一个警告,是因为Address可能是null。
可以有几种办法把这个警告去掉,首先是使用null条件操作符:
如果是Address是null的话,就输出null。
或者,如果你确认Address属性不会是null,那么可以在Address后添加一个叹号”!“,表示Address肯定不是null:
这个叹号的作用仅仅是去掉了警告,它没有改变任何运行时的状况,如果Address为null,那么这句话仍然会抛出NullReferenceException。
所以,只有确认我们访问的东西肯定不是null的时候,才应该使用"!"。
成员不可能是null
下面我更改一下思路意图,假设所有的成员都不可能为null,那么修改两个类:
类成员又出现了警告。
而回到方法里,我把叹号和问号都去掉之后,也不会出现警告了,因为它认为所有的成员都不会是null了:
但是还要记住,这个只是在编译时进行的检查,如果成员为null,还是会抛出异常的。这种操作对于运行时来说没有任何改变。
解决成员上出现的警告
使用构造函数对成员初始化,可以去掉这些警告:
另外一种办法就是直接对属性进行初始化:
我们还是采用构造函数初始化的办法吧。
往构造函数里传递null
那么往构造函数里面传递null会出现什么情况呢?试一下:
提示还是比较智能的,有警告,它说无法把null这个字面值转化为非null的引用类型。
另一种开启nullable检查的方式
如果把老项目的项目文件直接添加以下内容:
那么项目在编译的时候很可能出现大规模的问题。
所以一点一点启用nullable检查是比较好的做法。
首先我把项目文件恢复原状,然后打开某个文件,在文件最上面添加以下内容:
然后在文件的最下面添加:
这样的话,这个文件里面所有的内容都开起了nullable检查。
或者,我们也可以只针对一段代码进行检查:
原文出处:https://www.cnblogs.com/cgzl/p/11665814.html
关于在具有可空返回类型的方法上将@Nullable放在哪里?的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.net – Nullable Enum可空类型问题、.NET中可空值类型【Nullable
针对org.apache.batik.dom.svg.SVGDOMImplementation哪里去了?和svg github这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展com.github.mikephil.charting.data.realm.implementation.RealmBarDataSet的实例源码、DOMImplementation对象、grails – java.lang.ClassNotFoundException:org.apache.batik.dom.svg.SVGOMDocument、idea maven No implementation for org.apache.maven.model.path.PathTranslator was bound.等相关知识,希望可以帮助到你。
本文目录一览:- org.apache.batik.dom.svg.SVGDOMImplementation哪里去了?(svg github)
- com.github.mikephil.charting.data.realm.implementation.RealmBarDataSet的实例源码
- DOMImplementation对象
- grails – java.lang.ClassNotFoundException:org.apache.batik.dom.svg.SVGOMDocument
- idea maven No implementation for org.apache.maven.model.path.PathTranslator was bound.
org.apache.batik.dom.svg.SVGDOMImplementation哪里去了?(svg github)
在batik的文档中,它显示了如何从类org.apache.batik.dom.svg.SVGDOMImplementation中获取DOM实现的实例。
但是,从同一站点下载Batik 1.8之后,我在任何地方都找不到此类。
我下载了1.7版本,并在batik-svg-dom.jar中找到了它,但它在1.8内的同一jar中不存在(或据我所知在该软件包中的任何jar中都不存在)。
此类已重命名/重构/替换了吗?如果是这样,如何在蜡染1.8中获得DOM实现的实例?
答案1
小编典典我找到了答案,嵌入在@Ajay答案中的邮件列表线程中。
看来,为了解决此错误,他们已将其移动SVGDOMImplementation
到package中org.apache.batik.anim.dom
,该文件位于jar文件batik-
anim-1.8.jar中。
截至撰写本文时,蜡染网站尚未更新,由于某些原因,此更改在发行说明中也未突出显示。
com.github.mikephil.charting.data.realm.implementation.RealmBarDataSet的实例源码
private void setData() { RealmResults<RealmDemoData> result = mRealm.where(RealmDemoData.class).findAll(); //RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,"stackValues","xIndex"); // normal entries RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,"xValue","floatValue"); // stacked entries set.setColors(new int[]{ColorTemplate.rgb("#8BC34A"),ColorTemplate.rgb("#FFC107"),ColorTemplate.rgb("#9E9E9E")}); set.setLabel("Mobile OS distribution"); set.setStackLabels(new String[]{"iOS","Android","Other"}); ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>(); dataSets.add(set); // add the dataset // create a data object with the dataset list BarData data = new BarData(dataSets); styleData(data); data.setValueTextColor(Color.WHITE); // set data mChart.setData(data); mChart.animateY(1400,Easing.EasingOption.EaseInOutQuart); }
private void setData() { RealmResults<RealmDemoData> result = mRealm.where(RealmDemoData.class).findAll(); //RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,"yValue"); // stacked entries set.setColors(new int[] {ColorTemplate.rgb("#FF5722"),ColorTemplate.rgb("#03A9F4")}); set.setLabel("Realm BarDataSet"); ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>(); dataSets.add(set); // add the dataset // create a data object with the dataset list BarData data = new BarData(dataSets); styleData(data); // set data mChart.setData(data); mChart.setFitBars(true); mChart.animateY(1400,Easing.EasingOption.EaseInOutQuart); }
private void setData() { RealmResults<RealmDemoData> result = mRealm.allObjects(RealmDemoData.class); //RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,"xIndex","Other"}); ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>(); dataSets.add(set); // add the dataset // create a data object with the dataset list RealmBarData data = new RealmBarData(result,dataSets); styleData(data); data.setValueTextColor(Color.WHITE); // set data mChart.setData(data); mChart.animateY(1400,Easing.EasingOption.EaseInOutQuart); }
private void setData() { RealmResults<RealmDemoData> result = mRealm.allObjects(RealmDemoData.class); //RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,"value","xIndex"); // stacked entries set.setColors(new int[] {ColorTemplate.rgb("#FF5722"),ColorTemplate.rgb("#03A9F4")}); set.setLabel("Realm BarDataSet"); ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>(); dataSets.add(set); // add the dataset // create a data object with the dataset list RealmBarData data = new RealmBarData(result,dataSets); styleData(data); // set data mChart.setData(data); mChart.animateY(1400,Easing.EasingOption.EaseInOutQuart); }
private void setData() { RealmResults<RealmDemoData> result = mRealm.where(RealmDemoData.class).findAll(); //RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,Easing.EasingOption.EaseInOutQuart); }
private void setData() { RealmResults<RealmDemoData> result = mRealm.where(RealmDemoData.class).findAll(); //RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,Easing.EasingOption.EaseInOutQuart); }
private void setData() { RealmResults<RealmDemoData> result = mRealm.where(RealmDemoData.class).findAll(); //RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,Easing.EasingOption.EaseInOutQuart); }
private void setData() { RealmResults<RealmDemoData> result = mRealm.where(RealmDemoData.class).findAll(); //RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,Easing.EasingOption.EaseInOutQuart); }
private void setData() { // LINE-CHART RealmResults<score> results = mRealm.allObjects(score.class); RealmLineDataSet<score> lineDataSet = new RealmLineDataSet<score>(results,"totalscore","scoreNr"); lineDataSet.setDrawCubic(false); lineDataSet.setLabel("Realm LineDataSet"); lineDataSet.setDrawCircleHole(false); lineDataSet.setColor(ColorTemplate.rgb("#FF5722")); lineDataSet.setCircleColor(ColorTemplate.rgb("#FF5722")); lineDataSet.setlinewidth(1.8f); lineDataSet.setCircleSize(3.6f); ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>(); dataSets.add(lineDataSet); RealmLineData lineData = new RealmLineData(results,"playerName",dataSets); styleData(lineData); // set data lineChart.setData(lineData); lineChart.animateY(1400,Easing.EasingOption.EaseInOutQuart); // BAR-CHART RealmBarDataSet<score> barDataSet = new RealmBarDataSet<score>(results,"scoreNr"); barDataSet.setColors(new int[]{ColorTemplate.rgb("#FF5722"),ColorTemplate.rgb("#03A9F4")}); barDataSet.setLabel("Realm BarDataSet"); ArrayList<IBarDataSet> barDataSets = new ArrayList<IBarDataSet>(); barDataSets.add(barDataSet); RealmBarData barData = new RealmBarData(results,barDataSets); styleData(barData); barChart.setData(barData); barChart.animateY(1400,Easing.EasingOption.EaseInOutQuart); }
private void setData() { // LINE-CHART final RealmResults<score> results = mRealm.where(score.class).findAll(); IAxisValueFormatter formatter = new IAxisValueFormatter() { @Override public String getFormattedValue(float value,AxisBase axis) { return results.get((int) value).getPlayerName(); } }; lineChart.getXAxis().setValueFormatter(formatter); barChart.getXAxis().setValueFormatter(formatter); RealmLineDataSet<score> lineDataSet = new RealmLineDataSet<score>(results,"scoreNr","totalscore"); lineDataSet.setMode(LineDataSet.Mode.CUBIC_BEZIER); lineDataSet.setLabel("Result scores"); lineDataSet.setDrawCircleHole(false); lineDataSet.setColor(ColorTemplate.rgb("#FF5722")); lineDataSet.setCircleColor(ColorTemplate.rgb("#FF5722")); lineDataSet.setlinewidth(1.8f); lineDataSet.setCircleRadius(3.6f); ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>(); dataSets.add(lineDataSet); LineData lineData = new LineData(dataSets); styleData(lineData); // set data lineChart.setData(lineData); lineChart.animateY(1400,"totalscore"); barDataSet.setColors(new int[]{ColorTemplate.rgb("#FF5722"),ColorTemplate.rgb("#03A9F4")}); barDataSet.setLabel("Realm BarDataSet"); ArrayList<IBarDataSet> barDataSets = new ArrayList<IBarDataSet>(); barDataSets.add(barDataSet); BarData barData = new BarData(barDataSets); styleData(barData); barChart.setData(barData); barChart.setFitBars(true); barChart.animateY(1400,Easing.EasingOption.EaseInOutQuart); }
private void setData() { // LINE-CHART final RealmResults<score> results = mRealm.where(score.class).findAll(); IAxisValueFormatter formatter = new IAxisValueFormatter() { @Override public String getFormattedValue(float value,Easing.EasingOption.EaseInOutQuart); }
private void setData() { // LINE-CHART final RealmResults<score> results = mRealm.where(score.class).findAll(); IAxisValueFormatter formatter = new IAxisValueFormatter() { @Override public String getFormattedValue(float value,Easing.EasingOption.EaseInOutQuart); }
DOMImplementation对象
DOMImplementation
对象提供了许多方法,用于执行独立于文档对象模型的任何特定实例的操作。
1. 方法
下表列出了DOMImplementation
对象的方法 -
document
元素创建指定类型的DOM Document
对象。DocumentType
节点。getFeature(feature, version)
grails – java.lang.ClassNotFoundException:org.apache.batik.dom.svg.SVGOMDocument
我的问题是当我下载我的应用程序的pdf,错误发生(我甚至尝试包括jar):
java.lang.classNotFoundException: org.apache.batik.dom.svg.SvgoMDocument
在我的碧玉报告中,我已经包括:
<image> <reportElement x="453" y="117" width="246" height="115"/> <imageExpression><![CDATA[net.sf.jasperreports.renderers.BatikRenderer.getInstance(new java.io.File("C:\\Project\\myProject\\web-app\\images\\tomcat.svg"))]]> </imageExpression> </image>
基本上,我的BuildConfig.groovy就是这样的:
inherits("global") { excludes 'xml-apis','xml-apis-ext','xercesImpl' }
和我的依赖:
compile("org.apache.xmlgraphics:fop:0.94","org.apache.xmlgraphics:batik-transcoder:1.7","org.apache.xmlgraphics:batik-codec:1.7","org.apache.xmlgraphics:batik-awt-util:1.7","org.apache.xmlgraphics:batik-bridge:1.7","org.apache.xmlgraphics:batik-dom:1.7","org.apache.xmlgraphics:batik-gvt:1.7","org.apache.xmlgraphics:batik-svg-dom:1.7","org.apache.xmlgraphics:batik-svggen:1.7","org.apache.xmlgraphics:batik-util:1.7","org.apache.xmlgraphics:batik-xml:1.7","org.apache.xmlgraphics:batik-anim:1.7","org.apache.xmlgraphics:batik-css:1.7","org.apache.xmlgraphics:batik-ext:1.7","org.apache.xmlgraphics:batik-js:1.7","org.apache.xmlgraphics:batik-parser:1.7","org.apache.xmlgraphics:batik-script:1.7","org.apache.xmlgraphics:xmlgraphics-commons:1.2","commons-logging:commons-logging:1.0.4","org.apache.avalon.framework:avalon-framework-api:4.3.1","org.apache.avalon.framework:avalon-framework-impl:4.3.1","xalan:xalan:2.6.0","xml-apis:xml-apis-ext:1.3.04" ){ transitive = false
为什么我无法下载?无效的svg?我从维基上获得了this svg.
解决方法
idea maven No implementation for org.apache.maven.model.path.PathTranslator was bound.
查看idea log
2019-11-08 22:30:29,402 [ 475319] ERROR - #org.jetbrains.idea.maven - IntelliJ IDEA 2018.2.5 Build #IU-182.4892.20
2019-11-08 22:30:29,402 [ 475319] ERROR - #org.jetbrains.idea.maven - JDK: 1.8.0_152-release
2019-11-08 22:30:29,402 [ 475319] ERROR - #org.jetbrains.idea.maven - VM: OpenJDK 64-Bit Server VM
2019-11-08 22:30:29,402 [ 475319] ERROR - #org.jetbrains.idea.maven - Vendor: JetBrains s.r.o
2019-11-08 22:30:29,402 [ 475319] ERROR - #org.jetbrains.idea.maven - OS: Windows 10
2019-11-08 22:30:29,402 [ 475319] ERROR - #org.jetbrains.idea.maven - Last Action: Maven.Reimport
2019-11-08 22:30:49,900 [ 495817] ERROR - #org.jetbrains.idea.maven - com.google.inject.CreationException: Unable to create injector, see the following errors:
1) No implementation for org.apache.maven.model.path.PathTranslator was bound.
while locating org.apache.maven.model.path.PathTranslator
for field at org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.pathTranslator(Unknown Source)
at org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
2) No implementation for org.apache.maven.model.path.UrlNormalizer was bound.
while locating org.apache.maven.model.path.UrlNormalizer
for field at org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.urlNormalizer(Unknown Source)
at org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
2 errors
java.lang.RuntimeException: com.google.inject.CreationException: Unable to create injector, see the following errors:
1) No implementation for org.apache.maven.model.path.PathTranslator was bound.
while locating org.apache.maven.model.path.PathTranslator
for field at org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.pathTranslator(Unknown Source)
at org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
2) No implementation for org.apache.maven.model.path.UrlNormalizer was bound.
while locating org.apache.maven.model.path.UrlNormalizer
for field at org.apache.maven.model.interpolation.AbstractStringBasedModelInterpolator.urlNormalizer(Unknown Source)
at org.codehaus.plexus.DefaultPlexusContainer$1.configure(DefaultPlexusContainer.java:350)
2 errors
at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:543)
at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:159)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106)
at com.google.inject.Guice.createInjector(Guice.java:87)
at com.google.inject.Guice.createInjector(Guice.java:69)
at com.google.inject.Guice.createInjector(Guice.java:59)
at org.codehaus.plexus.DefaultPlexusContainer.addComponent(DefaultPlexusContainer.java:344)
at org.codehaus.plexus.DefaultPlexusContainer.addComponent(DefaultPlexusContainer.java:332)
at org.jetbrains.idea.maven.server.Maven3ServerEmbedderImpl.customizeComponents(Maven3ServerEmbedderImpl.java:569)
at org.jetbrains.idea.maven.server.Maven3ServerEmbedderImpl.customize(Maven3ServerEmbedderImpl.java:540)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:276)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:253)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:227)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:179)
at com.sun.proxy.$Proxy180.customize(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.execution.rmi.RemoteUtil.invokeRemote(RemoteUtil.java:179)
at com.intellij.execution.rmi.RemoteUtil.access$300(RemoteUtil.java:39)
at com.intellij.execution.rmi.RemoteUtil$2$1$1.compute(RemoteUtil.java:160)
at com.intellij.openapi.util.ClassLoaderUtil.runWithClassLoader(ClassLoaderUtil.java:66)
at com.intellij.execution.rmi.RemoteUtil.executeWithClassLoader(RemoteUtil.java:231)
at com.intellij.execution.rmi.RemoteUtil$2$1.invoke(RemoteUtil.java:157)
at com.sun.proxy.$Proxy180.customize(Unknown Source)
at org.jetbrains.idea.maven.server.MavenEmbedderWrapper.doCustomize(MavenEmbedderWrapper.java:96)
at org.jetbrains.idea.maven.server.MavenEmbedderWrapper.lambda$customizeForResolve$1(MavenEmbedderWrapper.java:69)
at org.jetbrains.idea.maven.server.RemoteObjectWrapper.perform(RemoteObjectWrapper.java:76)
at org.jetbrains.idea.maven.server.MavenEmbedderWrapper.customizeForResolve(MavenEmbedderWrapper.java:68)
at org.jetbrains.idea.maven.project.MavenProjectsTree.resolve(MavenProjectsTree.java:1264)
at org.jetbrains.idea.maven.project.MavenProjectsProcessorResolvingTask.perform(MavenProjectsProcessorResolvingTask.java:44)
at org.jetbrains.idea.maven.project.MavenProjectsProcessor.doProcessPendingTasks(MavenProjectsProcessor.java:132)
at org.jetbrains.idea.maven.project.MavenProjectsProcessor.access$000(MavenProjectsProcessor.java:32)
at org.jetbrains.idea.maven.project.MavenProjectsProcessor$2.run(MavenProjectsProcessor.java:107)
at org.jetbrains.idea.maven.utils.MavenUtil.lambda$runInBackground$5(MavenUtil.java:449)
at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:314)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
经过网上查询是idea与maven版本不匹配问题
我这里idea是2018.2.5 maven是3.6.2换成了3.5.4重新导入问题就解决了
参考:https://stackoverflow.com/questions/57842143/idea-unable-import-maven-project?r=SearchResults
关于org.apache.batik.dom.svg.SVGDOMImplementation哪里去了?和svg github的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于com.github.mikephil.charting.data.realm.implementation.RealmBarDataSet的实例源码、DOMImplementation对象、grails – java.lang.ClassNotFoundException:org.apache.batik.dom.svg.SVGOMDocument、idea maven No implementation for org.apache.maven.model.path.PathTranslator was bound.的相关信息,请在本站寻找。
在本文中,我们将带你了解Android:Java v。Python在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的android api on android:黑屏而不是auth、Android上执行python脚本-QPython、Android上的Python Django、Android上的Scala:java.lang.NoSuchMethodError:java.lang.String.isEmpty。
本文目录一览:- Android:Java v。Python
- android api on android:黑屏而不是auth
- Android上执行python脚本-QPython
- Android上的Python Django
- Android上的Scala:java.lang.NoSuchMethodError:java.lang.String.isEmpty
Android:Java v。Python
除了常见的Python v。Java问题,是否有其他理由要在Android手机上使用Python或Java来代替Python或Java?
答案1
小编典典Java在Android平台上“更原生”。Python紧随其后,力求获得奇偶校验,但AFAIK尚未到位。与App
Engine大致相反的情况,Python的出现时间比Java长了一年,因此Python更加成熟和完善(即使Java赶上了它)。
因此,在任何情况下,如果部署是在某些通用平台(例如Linux)上进行的,您在Java和Python之间都一无所知,我认为成熟度和完整性争论可能会促使您转向将Python部署到App
Engine上,以及Java以便在Android上进行部署。
android api on android:黑屏而不是auth
我已经搜索了过去3个小时关于这个问题的答案,类似的问题没有帮助,所以我终于问了一个问题:
我正在尝试使用面向Android的Facebook SDK,我正在获得一个“空白”屏幕(周围有一个框架,但是您希望获得授权细节,而不是获得空白区域):
单击“登录”会显示相同的页面,只有标题现在是“错误”,并带有模糊的消息:
>我已经检查过哈希键是对的.我已经将哈希键更改为像“asdf”这样荒谬的东西,日志确实说应用程序正在使用[某些键]并且不匹配.所以我用[some key]替换了“asdf”,那个错误就消失了. (此外,上面的页面甚至不会出现错误的哈希键,它只是立即结束身份验证过程.)
>我已经检查过日期和时间设置是否正确,所以至少SSL并没有因此而中断.我也没有在logcat中看到任何相关的错误或警告.
>我确实找到了an existing question(没有真正的答案)和链接的solution,但这似乎已经过时了. (它不起作用.)
我在https://developers.facebook.com/docs/mobile/android/build/#enablesso一字一句地关注FB教程,此时我不知道如何在日志中没有错误或警告的情况下调试它.有没有人见过这个bug?
(我正在使用Android API 15和FB API的github的最新克隆.)
解决方法:
我在andorid上使用Titanium移动开发时遇到同样的问题,使用webview或使用SSO都会得到相同的结果.
编辑:已提交错误,因此请注册:
https://developers.facebook.com/bugs/385350798163367?browse=search_4f8ed4596fd900857644164
Android上执行python脚本-QPython
看书,发现android可以跑python。
尝试了一下。
首先需要在手机上安装python环境,通过安装apk实现,这个apk叫QPython,还有同类的比如SL4A。
QPython的官网:https://www.qpython.com/
可以在官网上下载QPython的安装包,然后安装在手机上。
adb install XXXX.APK
QPython的教程:https://www.qpython.org/en/guide_howtostart.html
执行QPython的默认的python脚本
执行结果
本地编写的python脚本,上传到手机后,可以在终端执行。
adb push C:\Users\user\Desktop\testReport\batDoc\settingsTest.py /storage/emulated/0/qpython/scripts3
上传成功后,在首页点击程序,选中自己上传的python脚本,就可以了。
Android上的Python Django
那么 – 可以在Android上安装Python和Django(甚至Flask)吗?
解决方法
Android上的Scala:java.lang.NoSuchMethodError:java.lang.String.isEmpty
java.lang.NoSuchMethodError:java.lang.String.isEmpty
我从Scala调用text.isEmpty.任何想法,如何解决这个问题?
解决方法
我们今天的关于Android:Java v。Python的分享已经告一段落,感谢您的关注,如果您想了解更多关于android api on android:黑屏而不是auth、Android上执行python脚本-QPython、Android上的Python Django、Android上的Scala:java.lang.NoSuchMethodError:java.lang.String.isEmpty的相关信息,请在本站查询。
在本文中,我们将详细介绍Kotlin 1.2.21 + SimpleXml 2.3.0-使用列表错误的各个方面,并为您提供关于必须将标记设置为get方法的相关解答,同时,我们也将为您带来关于Android-Kotlin-set/get方法的使用、c++ 链表错误,implicitly-deleted、com.intellij.psi.impl.source.xml.XmlFileImpl的实例源码、com.intellij.psi.impl.source.xml.XmlTextImpl的实例源码的有用知识。
本文目录一览:- Kotlin 1.2.21 + SimpleXml 2.3.0-使用列表错误(必须将标记设置为get方法)
- Android-Kotlin-set/get方法的使用
- c++ 链表错误,implicitly-deleted
- com.intellij.psi.impl.source.xml.XmlFileImpl的实例源码
- com.intellij.psi.impl.source.xml.XmlTextImpl的实例源码
Kotlin 1.2.21 + SimpleXml 2.3.0-使用列表错误(必须将标记设置为get方法)
我试图通过Retrofit
2使用SimpleXML来使用XML。在与Kotlin进行了数小时的挣扎之后,我决定尝试Java版本,然后再转换为Kotlin。Java版本运作良好…
错误:
java.lang.RuntimeException: org.simpleframework.xml.core.MethodException: Annotation @org.simpleframework.xml.ElementList(data=false, empty=true, entry=, inline=true, name=entry, required=true, type=void) must mark a set or get method
我需要一个能够使用该XML的Kotlin模型类。输入如下:
<feed> <entry> <id> someid </id> <published> somedate </published> </entry> <entry> <id> someid2 </id> <published> somedate2 </published> </entry></feed>
Java模型类版本(工作正常):
@Root(name = "feed", strict = false)public class MFeed { @ElementList(name = "entry", inline = true) private List<MEntry> entriesList; public MFeed(List<MEntry> entriesList) { this.entriesList = entriesList; } public MFeed() { } public List<MEntry> getEntriesList() { return entriesList; } public void setEntriesList(List<MEntry> entriesList) { this.entriesList = entriesList; }}@Root(name = "entry", strict = false)public class MEntry { @Element(name = "id") private String id; @Element(name = "published") private String published; public MEntry() { } public MEntry(String id, String published) { this.id = id; this.published = published; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPublished() { return published; } public void setPublished(String published) { this.published = published; }}
自动生成的Kotlin模型如下所示:
@Root(name = "feed", strict = false)class Feed { @ElementList(name = "entry", inline = true) private var entriesList: List<MEntry>? = null //autogenerated by converter java -> kotlin constructor(entriesList: List<MEntry>) { this.entriesList = entriesList } //autogenerated by converter java -> kotlin constructor() {}}@Root(name = "entry", strict = false)class Entry { @Element(name = "id") var id: String? = null @Element(name = "published") var published: String? = null //autogenerated by converter java -> kotlin constructor() {} //autogenerated by converter java -> kotlin constructor(id: String, published: String) { this.id = id this.published = published }}
我为使用XML列表而付出了很多,包括this。没有工作。也许它们已经过时了。有人遇到这样的问题吗?
答案1
小编典典尝试添加@field
到注释中@Element*
。您可以将属性移动到构造函数,也可以data
在类中添加修饰符。像这样:
@Root(name = "feed", strict = false)data class Feed( @field:ElementList(name = "entry", inline = true) var entriesList: List<Entry>? = null)@Root(name = "entry", strict = true)data class Entry( @field:Element(name = "id") var id: String? = null, @field:Element(name = "published") var published: String? = null)
有了这个,我就成功地反序列化了xml:
import org.simpleframework.xml.Elementimport org.simpleframework.xml.ElementListimport org.simpleframework.xml.Rootimport org.simpleframework.xml.core.Persisterprivate val testXml = """<feed> <entry> <id> someid </id> <published> somedate </published> </entry> <entry> <id> someid2 </id> <published> somedate2 </published> </entry></feed>""".trimIndent()@Root(name = "feed", strict = false)data class Feed( @field:ElementList(name = "entry", inline = true) var entriesList: List<Entry>? = null)@Root(name = "entry", strict = true)data class Entry( @field:Element(name = "id") var id: String? = null, @field:Element(name = "published") var published: String? = null)fun main(args: Array<String>) { println(testXml) val serializer = Persister() val example = serializer.read(Feed::class.java, testXml) println(example)}
Android-Kotlin-set/get方法的使用
Student.kt
package cn.kotlin.kotlin_oop04
open class Person {
open var personName:String = "我是父类的名字"
}
class Student: Person() {
/**
* name用private私有修饰,外界其他地方不准访问,隐藏细节
* name提供set get 方法 对外暴露功能
* 对细节隐藏,只暴露自定义暴露的东东,就是属于封装的体现
*/
private var name:String = ""
fun getName() : String{
return name
}
fun setName(name:String) {
this.name = name
}
/**
* age用private私有修饰,外界其他地方不准访问,隐藏细节
* age提供set get 方法 对外暴露功能
* 对细节隐藏,只暴露自定义暴露的东东,就是属于封装的体现
*/
private var age:Int = 0
fun getAge() : Int{
return age
}
fun setAge(value: Int) {
if (value <0 || value > 150) {
println("传入的${age}值不规范 出现异常 请检查代码")
return
}
age = value
}
/**
* sex用private私有修饰,外界其他地方不准访问,隐藏细节
* sex提供set get 方法 对外暴露功能
* 对细节隐藏,只暴露自定义暴露的东东,就是属于封装的体现
*/
private var sex:String = ""
fun getSex() : String {
return sex
}
fun setSex(sex : String) {
if ("男".equals(sex) || "女".equals(sex)) {
this.sex = sex
return
}
println("传入的${sex}值不规范 出现异常 请检查代码")
}
/**
* 获取父类Person的personName
*/
override var personName: String
get() = super.personName
set(value) {personName = value}
}
/**
* main测试方法
*/
fun main(args: Array<String>) {
var student = Student()
// 设置所以属性信息
setAllData(student)
// 打印所以属性信息
toAllInfoShow(student)
}
/**
* 设置所以属性信息
*/
fun setAllData(student: Student) {
student.setName("猪小明")
student.setAge(99)
student.setSex("男")
}
/**
* 打印所以属性信息
*/
fun toAllInfoShow(student : Student) {
println("name:${student.getName()}, age:${student.getAge()}, sex:${student.getSex()}")
}
在Kotlin中,getter和setter是可选的,如果你没有在代码中创建它们,它是会默认自动生成,是看不到的:
class Account {
var name: String = ""
var age: Int = 0
var balance: Double = 0.0
}
以上的代码,就算不写getter/setter,默认也会生成getter和setter,例如:
class Account {
var name: String = ""
var age: Int = 0
var balance: Double = 0.0
// 这种set和get方法不推荐在代码中自己手动去写
set(vaule){
field = value
}
get() = field
}
c++ 链表错误,implicitly-deleted
报错信息:
LinkList.h:
#include <stdio.h> template <typename T> struct Node{ T t; struct Node<T> *next; }; template <typename T> class LinkList { public: LinkList(void);//构造函数 ~LinkList(void);//析构函数 LinkList(const LinkList &linkList);//拷贝函数 public: //业务方法 int add(T t,int pos);//添加数据 T& get(int pos);//获取数据 private: int length;//链表长度 Node<T> *header;//业务节点 };
LinkList.cpp:
#include "LinkList.h" template <typename T> LinkList<T>::LinkList(void)//构造函数 { header = new Node<T>; header->next = NULL; length = 0; } template <typename T> LinkList<T>::~LinkList(void)//析构函数 { Node<T> *tmp = NULL; if(header == NULL){ return; } while (header) { tmp = header->next; delete header; header = tmp; } header = NULL; length = 0; } template <typename T> LinkList<T>::LinkList(const LinkList &linkList)//拷贝函数 { //不写咯 } ////业务方法 template <typename T> int LinkList<T>::add(T t,int pos)//添加数据 { int ret = 0; Node<T> *current = NULL; current = &(LinkList<T>::header);//默认指向头部第一个节点(实际上这个节点用不到咯) for (int i = 0; i < pos && (current->next != NULL); i ++) { current = current->next; } Node<T> *newNode; newNode->t = t; newNode->next = current->next; current->next = newNode; return ret; } template <typename T> T& LinkList<T>::get(int pos)//获取数据 { Node<T> *current = NULL; current = &(LinkList<T>::header);//默认指向头部第一个节点(实际上这个节点用不到咯) for (int i = 0; i < pos && (current->next != NULL); i ++) { current = current->next; } return current->next; }
#include <iostream> #include <string> #include "LinkList.cpp" using namespace std; class Teacher{ public: Teacher(int age,string name){ this->age = age; this->name = name; } void printTeacher(){ cout << " 年龄: " << age << " 姓名: " << name << endl; } private: int age;//年龄 string name;//姓名 }; int main(int argc, const char * argv[]) { Teacher t1(24,"zs"); LinkList<Teacher> list; // list.add(t1, 0); // // Teacher t2 = list.get(0); // // t2.printTeacher(); return 0; }
我的编译器是 xcode 7.0.1
请大家帮我看看,这是什么原因,万分感谢!
com.intellij.psi.impl.source.xml.XmlFileImpl的实例源码
@Override protected boolean runEnable(AnActionEvent anActionEvent) { Object o = anActionEvent.getDataContext().getData(DataConstants.PSI_FILE); if (o instanceof XmlFileImpl) { parentFileName = ((XmlFileImpl) o).getVirtualFile().getParent().getName(); if (isPreference(parentFileName)) { return true; } } else if (o instanceof PsiFile) { parentFileName = ((PsiFile) o).getVirtualFile().getParent().getName(); if (isDataBase(parentFileName)) { return true; } } return false; }
@Override protected String getAndroidFacetName(AnActionEvent anActionEvent) { Object o = anActionEvent.getDataContext().getData(DataConstants.PSI_FILE); if (o instanceof XmlFileImpl) { return ((XmlFileImpl) o).getVirtualFile().getParent().getParent().getName(); } else if (o instanceof PsiFile) { return parentFileName = ((PsiFile) o).getVirtualFile().getParent().getParent().getName(); } return super.getAndroidFacetName(anActionEvent); }
public void test1() throws Exception{ String s1 = "<a>"; String s2 = "</a>"; prepareFile(s1,s2); final String beforeReparse = DebugUtil.treetoString(((XmlFileImpl)myDummyFile).getTreeElement(),true); insert(""); assertEquals("Tree changed after empty reparse",beforeReparse,DebugUtil.treetoString(((XmlFileImpl)myDummyFile).getTreeElement(),true)); }
public void test1() throws Exception{ String s1 = "<a>"; String s2 = "</a>"; prepareFile(s1,true)); }
public boolean parseRequirejsConfig() { VirtualFile mainjsVirtualFile = findpathInWebDir(settings.configFilePath); if (null == mainjsVirtualFile) { this.showErrorConfigNotification("Config file not found. File " + settings.publicPath + '/' + settings.configFilePath + " not found in project"); LOG.debug("Config not found"); return false; } else { PsiFile mainjs = PsiManager.getInstance(project).findFile(mainjsVirtualFile); if (mainjs instanceof JSFileImpl || mainjs instanceof XmlFileImpl) { Map<String,VirtualFile> allConfigPaths; packageConfig.clear(); requireMap.clear(); requirePaths.clear(); if (((PsiFileImpl) mainjs).getTreeElement() == null) { parseMainjsFile(((PsiFileImpl) mainjs).calcTreeElement()); } else { parseMainjsFile(((PsiFileImpl) mainjs).getTreeElement()); } } else { this.showErrorConfigNotification("Config file wrong format"); LOG.debug("Config file wrong format"); return false; } } return true; }
@Override public PsiFile createFile(FileViewProvider viewProvider) { return new XmlFileImpl(viewProvider,XmlElementType.DTD_FILE); }
@Override public PsiFile createFile(FileViewProvider viewProvider) { return new XmlFileImpl(viewProvider,XmlElementType.XHTML_FILE); }
@Override public PsiFile createFile(FileViewProvider viewProvider) { return new XmlFileImpl(viewProvider,XmlElementType.XML_FILE); }
protected void checkFormattingDoesNotProduceException(String name) throws Exception { String text = loadFile(name + ".xml",null); final XmlFileImpl file = (XmlFileImpl)createFile(name + ".xml",text); myTextRange = new TextRange(10000,10001); CommandProcessor.getInstance().executeCommand(getProject(),new Runnable() { @Override public void run() { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { performFormatting(file); } }); } },"",""); myTextRange = new TextRange(1000000,1000001); CommandProcessor.getInstance().executeCommand(getProject(),""); myTextRange = new TextRange(0,text.length()); CommandProcessor.getInstance().executeCommand(getProject(),""); }
public PsiFile createFile(FileViewProvider viewProvider) { return new XmlFileImpl(viewProvider,XmlElementType.DTD_FILE); }
public PsiFile createFile(FileViewProvider viewProvider) { return new XmlFileImpl(viewProvider,XmlElementType.XHTML_FILE); }
public PsiFile createFile(FileViewProvider viewProvider) { return new XmlFileImpl(viewProvider,XmlElementType.XML_FILE); }
protected void checkFormattingDoesNotProduceException(String name) throws Exception { String text = loadFile(name + ".xml",""); }
@Override public PsiFile createFile(FileViewProvider viewProvider) { return new XmlFileImpl(viewProvider,XmlElementType.XML_FILE); }
public PsiFile createFile(FileViewProvider viewProvider) { return new XmlFileImpl(viewProvider,XmlElementType.DTD_FILE); }
@Override public PsiFile createFile(FileViewProvider viewProvider) { return new XmlFileImpl(viewProvider,XmlElementType.XHTML_FILE); }
com.intellij.psi.impl.source.xml.XmlTextImpl的实例源码
public XmlTextLiteralEscaper(final XmlTextImpl xmlText) { super(xmlText); }
@NotNull @Override public List<? extends Class<? extends PsiElement>> elementsToInjectIn() { return Arrays.asList(XmlTextImpl.class,XmlAttributeValueImpl.class); }
public XmlTextLiteralEscaper(final XmlTextImpl xmlText) { super(xmlText); }
public XmlTextLiteralEscaper(final XmlTextImpl xmlText) { super(xmlText); }
关于Kotlin 1.2.21 + SimpleXml 2.3.0-使用列表错误和必须将标记设置为get方法的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Android-Kotlin-set/get方法的使用、c++ 链表错误,implicitly-deleted、com.intellij.psi.impl.source.xml.XmlFileImpl的实例源码、com.intellij.psi.impl.source.xml.XmlTextImpl的实例源码的相关信息,请在本站寻找。
本文标签: