GVKun编程网logo

Kotlin 1.2.21 + SimpleXml 2.3.0-使用列表错误(必须将标记设置为get方法)

15

本文将带您了解关于在具有可空返回类型的方法上将@Nullable放在哪里?的新内容,另外,我们还将为您提供关于.net–NullableEnum可空类型问题、.NET中可空值类型【Nullable】实

本文将带您了解关于在具有可空返回类型的方法上将@Nullable放在哪里?的新内容,另外,我们还将为您提供关于.net – Nullable Enum可空类型问题、.NET中可空值类型【Nullable】实现原理、c – 如果`f`具有非空返回类型 – 如何重构这个模式,返回`f`的结果?、C# 8 - Nullable Reference Types 可空引用类型的实用信息。

本文目录一览:

在具有可空返回类型的方法上将@Nullable放在哪里?

在具有可空返回类型的方法上将@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中引入的。它们比方法注释更具表现力,并且可以进行更强大的检查。例如,NullableEclipse和Checker
Framework支持的注释是类型注释。

.net – Nullable Enum可空类型问题

.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)
   };
}

如何解决这个错误?

解决方法

我想你只需要将Enum.Parse的结果转给MyEnum?至少可以使用nullable int的情况.例如.:
int? i;
i = shouldBeNull ? null : (int?) 123;

所以:

MyClassEnum = Convert.Isdbnull(x)
    ? null
    : (MyEnum?) Enum.Parse(typeof(MyEnum),true)

.NET中可空值类型【Nullable<T>】实现原理

.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`的结果?

c – 如果`f`具有非空返回类型 – 如何重构这个模式,返回`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()?

解决方法

你可以在return语句之后运行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# 8 - Nullable Reference Types 可空引用类型

在写C#代码的时候,你可能经常会遇到这个错误: 

 

但如果想避免NullReferenceException的发生,确实需要做很多麻烦的工作。 

 

可空引用类型 Null Reference Type 

所以,C# 8的可空引用类型就出现了。 

C# 8可以让你在编译时就避免null引用错误,它并不是把null值从代码里移除了,而是它可以让你表达意图。具体的做法就是你可以告诉编译器哪个引用可能是null的,而哪些引用不可能是null 

 

看下面这个例子: 

O references 
PrintPerson(Person person) 
public static void 
Console . WriteLine(person.Name);

很显然,我们期待person这个参数它不可以是null的。 

 

但是在C# 8之前,如果我们这样调用该方法,那么在编译时是不会报错的: 

null; 
Person person 
PrintPerson(person);

 

而如果运行程序,那么结果就是: 

Console . WriteLine(person . Name); 
class Person 
•son = null 
Exception Unhandled 
System.NullReferenceException: ''Object reference not set to an 
LIC 
LIC 
string Name { 
{ get; 
int 
Age 
get; 
set; 
set; 
instance of an object.'' 
person was null. 
View Details Copy Details 
Exception Settings 
Start Live Share session...

 

打开null检查 

而在Visual Studio 2019里面(C# 8的项目),修改项目文件,添加null检查之后: 

''<Project Sdk-"Microsoft.NET.Sdl<"> 
<PropertyGroup> 
<OutputType>Exe</OutputType> 
<Target Framework>netcoreapp3. R/ Target Framework> 
PropertyGroup> 
<PropertyGroup> 
PropertyGroup> 
</Project>

 

null; , 
Person person 
PrintPerson(Eä2Q);

这里就会出现警告。 

 

例子: 

有两个类,Person类的Address属性的类型是另外一个类: 

2 references 
public class Person 
O references 
{ get; set; } 
public string 
Name 
I reference 
Address { get; set; 
public Address 
I reference 
public class Address 
I reference 
public string Province { get; set; 
O references 
{ get; set; } 
public string

现在可以看到,这些属性都出现了波浪线的警告,如果我们build一下这个项目,那么也会出现很多警告: 

Show output from: Build 
'' •n ''void printperson(person 
Rebuild All 
starte 
c: (30, 
1>Pro 
c: (31, 
1>Pro 
c: (24, 
1>Pro 
c: (25, 
1>Pro 
cs(ll, 
1>Pro 
cs(12, 
1>Pro 
n: 1 Appl — 
1>C0 
ne building 
Rebul 
23, 30, 31) 
23, 31, 27) 
23, 24, 27) 
24, 25, 31) 
29, 11, 33) 
25, 12, 31) 
warm 
warm 
warm 
warm 
warm 
warm 
d project: ConsoleÅppl, 
ng CS8618: 
ng CS8618: 
ng CS8618: 
ng CS8618: 
ng cs8600: 
ng CS8604: 
guy at 1 on: 
ble property '' 
ble proper 
ble proper 
ty 
ble proper 
ty 
Debug 
k-,y CPU 
ci ty'' 
e 
Address'' is 
s ''minitialized C n 
s ''minitializeå 
s ''minitializeå 
''minitialized C n 
for 
Consi der 
to non—null a 
1 ill 
r declaring the 
declaring the pr 
C n d declaring the pr 
r declaring the 
ble type 
property as null able 
operty as nullablæ 
operty as nullablæ 
property as null able 
Converting null lit al or possible null due 
\Cons01eÅppl 0\Conso e 
project "ConsoleÅppL c 
''Id All: 1

这是因为我们把这两个类的成员声明称了非null的引用类型,而我却没有对它们进行初始化。 

 

成员可能是null 

如果我想让这些成员可以为null(意图上),那么就需要把它们设置为可null的(意图),在类型后边加上问号“?”即可: 

2 references 
public class Person 
O references 
{ get; 
public string? 
Name 
I reference 
public Address? Address { 
I reference 
public class Address 
I reference 
public string? Province { 
O references 
City 
public string? 
get; 
set; } 
get; set; 
get; set; 
set;

 

再次build项目之后,警告都没有了: 

Show output from: Build 
Rebuild started: projec 
I >Cons01eÅppl — 
Rebuild All: 1 succeeded, 
ConsoleÅppl, 
gurati on: 
Debug kny CPU 
\Cons01eÅppl nso e 
0 1 ill

 

然后再看一下这个方法: 

O references 
Print(Person person) 
public static void 
Console . WriteLine(person.Name); 
Console . WriteLine( . Province) ;

这里person.Address.Province有一个警告,是因为Address可能是null 

 

可以有几种办法把这个警告去掉,首先是使用null条件操作符: 

如果是Address是null的话,就输出null 

或者,如果你确认Address属性不会是null,那么可以在Address后添加一个叹号”!“,表示Address肯定不是null 

Console .WriteLine(person .Address ! . Province) ;

这个叹号的作用仅仅是去掉了警告,它没有改变任何运行时的状况,如果Addressnull,那么这句话仍然会抛出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】实现原理、c – 如果`f`具有非空返回类型 – 如何重构这个模式,返回`f`的结果?、C# 8 - Nullable Reference Types 可空引用类型等相关知识的信息别忘了在本站进行查找喔。

针对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)

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的实例源码

com.github.mikephil.charting.data.realm.implementation.RealmBarDataSet的实例源码

项目:GitHub    文件:RealmDatabaseActivityHorizontalBar.java   
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);
    }
项目:GitHub    文件:RealmDatabaseActivityBar.java   
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);
    }
项目:Stayfit    文件:RealmDatabaseActivityHorizontalBar.java   
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);
    }
项目:Stayfit    文件:RealmDatabaseActivityBar.java   
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);
    }
项目:xs-android-architecture    文件:RealmDatabaseActivityHorizontalBar.java   
private void setData() {

        RealmResults<RealmDemoData> result = mRealm.where(RealmDemoData.class).findAll();

        //RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,Easing.EasingOption.EaseInOutQuart);
    }
项目:xs-android-architecture    文件:RealmDatabaseActivityBar.java   
private void setData() {

        RealmResults<RealmDemoData> result = mRealm.where(RealmDemoData.class).findAll();

        //RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,Easing.EasingOption.EaseInOutQuart);
    }
项目:MPAndroidChart    文件:RealmDatabaseActivityHorizontalBar.java   
private void setData() {

        RealmResults<RealmDemoData> result = mRealm.where(RealmDemoData.class).findAll();

        //RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,Easing.EasingOption.EaseInOutQuart);
    }
项目:MPAndroidChart    文件:RealmDatabaseActivityBar.java   
private void setData() {

        RealmResults<RealmDemoData> result = mRealm.where(RealmDemoData.class).findAll();

        //RealmBarDataSet<RealmDemoData> set = new RealmBarDataSet<RealmDemoData>(result,Easing.EasingOption.EaseInOutQuart);
    }
项目:Stayfit    文件:RealmWikiExample.java   
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);
    }
项目:GitHub    文件:RealmWikiExample.java   
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);
    }
项目:xs-android-architecture    文件:RealmWikiExample.java   
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);
    }
项目:MPAndroidChart    文件:RealmWikiExample.java   
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对象

DOMImplementation对象提供了许多方法,用于执行独立于文档对象模型的任何特定实例的操作。

1. 方法

下表列出了DOMImplementation对象的方法 -

序号 方法 描述 1 createDocument(namespaceURI, qualifiedName, doctype) 它使用document元素创建指定类型的DOM Document对象。 2 createDocumentType(qualifiedName, publicId, systemId) 它创建一个空的DocumentType节点。 3 getFeature(feature, version) 此方法返回一个专用对象,该对象实现指定功能和版本的专用API。 4 hasFeature(feature, version) 此方法测试DOM实现是否实现特定功能和版本。

grails – java.lang.ClassNotFoundException:org.apache.batik.dom.svg.SVGOMDocument

grails – java.lang.ClassNotFoundException:org.apache.batik.dom.svg.SVGOMDocument

关注使用BATIK的许多问题和答案,我无法修复我的错误,我找不到任何可能有帮助的东西.而这个 question没有答案.

我的问题是当我下载我的应用程序的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.

解决方法

检查您的部署代码是否存在batik-svg-dom-1.7.jar或batik-all-1.7.jar(使用这一点会缩短编译配置).如果缺少,请手动添加,以查看是否修复了您的问题.如果缺少,但部署配置中缺少某些内容.

idea maven No implementation for org.apache.maven.model.path.PathTranslator was bound.

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: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

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脚本-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

我是一个Django开发人员,想知道有没有人知道使用 Android平板电脑(如nexus 7)在Django上安装和开发的可能性.这似乎是一个相当强大的设备,可以连接一个蓝牙键盘,并且在操作系统的核心有linux.

那么 – 可以在Android上安装Python和Django(甚至Flask)吗?

解决方法

我们正在开发 PythonAnywhere来填补这种利基.我们首先调整它与iPad配合使用.但是Nexus 7看起来很受欢迎,现在可能有足够的需求为Android做同样的事情.

Android上的Scala:java.lang.NoSuchMethodError:java.lang.String.isEmpty

Android上的Scala:java.lang.NoSuchMethodError:java.lang.String.isEmpty

我在 Android 2.2.1上得到以下异常:

java.lang.NoSuchMethodError:java.lang.String.isEmpty

我从Scala调用text.isEmpty.任何想法,如何解决这个问题?

解决方法

使用JRE / JDK 1.5,它在String上没有isEmpty方法.这将避免Scala使用1.6的isEmpty而不是自己的情况.如果您也有Java库,请务必选择与1.5兼容的库.

我们今天的关于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方法)

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方法的使用

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

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;
}



main.cpp:

#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的实例源码

com.intellij.psi.impl.source.xml.XmlFileImpl的实例源码

项目:ADB-Duang    文件:PushAction.java   
@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;
}
项目:ADB-Duang    文件:PushAction.java   
@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);
}
项目:intellij-ce-playground    文件:XmlReparseTest.java   
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));
}
项目:tools-idea    文件:XmlReparseTest.java   
public void test1() throws Exception{
  String s1 = "<a>";
  String s2 = "</a>";

  prepareFile(s1,true));
}
项目:WebStormRequireJsPlugin    文件:RequirejsProjectComponent.java   
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;
}
项目:intellij-ce-playground    文件:DTDParserDeFinition.java   
@Override
public PsiFile createFile(FileViewProvider viewProvider) {
  return new XmlFileImpl(viewProvider,XmlElementType.DTD_FILE);
}
项目:intellij-ce-playground    文件:XHTMLParserDeFinition.java   
@Override
public PsiFile createFile(FileViewProvider viewProvider) {
  return new XmlFileImpl(viewProvider,XmlElementType.XHTML_FILE);
}
项目:intellij-ce-playground    文件:XMLParserDeFinition.java   
@Override
public PsiFile createFile(FileViewProvider viewProvider) {
  return new XmlFileImpl(viewProvider,XmlElementType.XML_FILE);
}
项目:intellij-ce-playground    文件:XmlFormatterTestBase.java   
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(),"");
  }
项目:tools-idea    文件:DTDParserDeFinition.java   
public PsiFile createFile(FileViewProvider viewProvider) {
  return new XmlFileImpl(viewProvider,XmlElementType.DTD_FILE);
}
项目:tools-idea    文件:XHTMLParserDeFinition.java   
public PsiFile createFile(FileViewProvider viewProvider) {
  return new XmlFileImpl(viewProvider,XmlElementType.XHTML_FILE);
}
项目:tools-idea    文件:XMLParserDeFinition.java   
public PsiFile createFile(FileViewProvider viewProvider) {
  return new XmlFileImpl(viewProvider,XmlElementType.XML_FILE);
}
项目:tools-idea    文件:XmlFormatterTestBase.java   
protected void checkFormattingDoesNotProduceException(String name) throws Exception {

    String text = loadFile(name + ".xml","");
  }
项目:consulo-xml    文件:XMLParserDeFinition.java   
@Override
public PsiFile createFile(FileViewProvider viewProvider) {
  return new XmlFileImpl(viewProvider,XmlElementType.XML_FILE);
}
项目:consulo-xml    文件:DTDParserDeFinition.java   
public PsiFile createFile(FileViewProvider viewProvider) {
  return new XmlFileImpl(viewProvider,XmlElementType.DTD_FILE);
}
项目:consulo-xml    文件:XHTMLParserDeFinition.java   
@Override
public PsiFile createFile(FileViewProvider viewProvider) {
  return new XmlFileImpl(viewProvider,XmlElementType.XHTML_FILE);
}

com.intellij.psi.impl.source.xml.XmlTextImpl的实例源码

com.intellij.psi.impl.source.xml.XmlTextImpl的实例源码

项目:intellij-ce-playground    文件:XmlTextLiteralEscaper.java   
public XmlTextLiteralEscaper(final XmlTextImpl xmlText) {
  super(xmlText);
}
项目:react-templates-plugin    文件:RTJSInjector.java   
@NotNull
@Override
public List<? extends Class<? extends PsiElement>> elementsToInjectIn() {
    return Arrays.asList(XmlTextImpl.class,XmlAttributeValueImpl.class);
}
项目:tools-idea    文件:XmlTextLiteralEscaper.java   
public XmlTextLiteralEscaper(final XmlTextImpl xmlText) {
  super(xmlText);
}
项目:consulo-xml    文件:XmlTextLiteralEscaper.java   
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的实例源码的相关信息,请在本站寻找。

本文标签: