标签: instanceof

用于组装对象的"instanceof"链

我面对以下代码:

public class BaseGroup {

    private Group1 group1;
    private Group2 group2;
    private Group3 group3;

    public void setGroup (IGroup group) {

        if(group instanceof Group1) {
            setGroup1((Group1) group);
        } else if(group instanceof Group2) {
            setGroup2((Group2) group);
        } else {
            setGroup3((Group3) group);
        }
    }

    public Group1 getGroup1() {
        return group1;
    }

    public void setGroup1(Group1 group1) {
        this.group1 = group1;
    }

    public Group2 getGroup2() {
        return group2;
    }

    public void setGroup2(Group2 group1) {
        this.group2 = group2;
    }

    public Group3 getGroup3() {
        return group3;
    } …
Run Code Online (Sandbox Code Playgroud)

java setter instanceof

3
推荐指数
1
解决办法
398
查看次数

了解java中的instanceof以及if条件?

我不确定树(引用变量)如何在我的示例程序53,00中成为对象Tree的实例?我期待"Pine"和"oops"作为输出,但为什么"Tree"包含在输出中?我还没有给Tree tree = new Tree().

    class Tree{}  
class Pine extends Tree{}  
class Oak extends Tree{}  
public class forrest {    

    public static void main( String[] args )      
    {    
        Tree tree = new Pine();   


        if( tree instanceof Pine )      
            System.out.println( "Pine" );   
        if( tree instanceof Tree )       
            System.out.println( "Tree" );  
        if( tree instanceof Oak )      
            System.out.println( "Oak" );   
        else System.out.println( "Oops" );  
    }  
}
Run Code Online (Sandbox Code Playgroud)

java instanceof

3
推荐指数
1
解决办法
2408
查看次数

如何在自定义对象上指定.constructor.name?

这个问题确实必须相当简单,但我不能google或duckduck答案,可能是因为99%的初学者教程涉及Person使用name属性创建一个对象(与constructor.name无关但污染了搜索结果).

的实例Object对象可以使用instance.constructor.name来检测:

var foo = new Object;
foo.constructor.name; // "Object"
Run Code Online (Sandbox Code Playgroud)

如何在我自己的对象上设置构造函数名称?

var Bar = function(){};
var baz = new Bar;
baz.constructor.name // "" <- Empty string
Run Code Online (Sandbox Code Playgroud)

javascript constructor object instanceof instance

3
推荐指数
1
解决办法
2642
查看次数

instanceof,范围和对象

有人可以向我解释这种行为吗?

'use strict'

var fooFactory = function() {

    function foo() {
        var name = "foo object";

        function getName() {
            return name;
        }

        return {
            getName: getName
        }
    }

    function getFoo() {
        return new foo;
    }

    return {
        getFoo: getFoo,
        foo: foo
    }
};

var factory = new fooFactory();

var bar = factory.getFoo();

console.log("is " + bar.getName() + " instance of foo: " + (bar instanceof factory.foo)); 
// outputs "is foo object instance of foo: false"
Run Code Online (Sandbox Code Playgroud)

我不明白,为什么foo对象不是我在fooFactory中声明的foo构造函数的实例.

javascript scope instanceof

3
推荐指数
1
解决办法
73
查看次数

如何知道一个java对象是否是一个列表

我想知道如何询问 java 对象是 List 还是 ArrayList。

例如:

if (Object instanceof List <?>)) {
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

PS:我有几个不同类型的列表,无论它们包含什么类型的数据,我都想为任何列表实现该方法。

java list instanceof

3
推荐指数
1
解决办法
1万
查看次数

如何用 Java 8 编写 instanceof?

我是 Java 8 Optional 的新手。我必须更改以下代码:

@RequestMapping(value = "/account",
            method = RequestMethod.GET,
            produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<UserDTO> getAccount() {
    return 
        Optional.ofNullable(userService.getUserWithAuthorities())
        .map(user -> 
            new ResponseEntity<>(
                new UserDTO(
                    user.getLogin(),
                    null,
                    user.getFirstName(),
                    user.getLastName(),
                    user.getEmail(),
                    "",
                    user.getLangKey(),
                    user.getAuthorities()
                        .stream()
                        .map(Authority::getName)
                        .collect(Collectors.toList())
                ),
                HttpStatus.OK
            )
        )
        .orElse(new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR));
}
Run Code Online (Sandbox Code Playgroud)

我想根据user. 我如何编写等效于以下代码的代码:

if(user instanceof Admin )
{
// my logic
}
else if(user instanceof NormalUser)
{
// my logic
}
Run Code Online (Sandbox Code Playgroud)

谢谢

java instanceof java-8

3
推荐指数
1
解决办法
2万
查看次数

如何确保集合仅包含接口的每个实现之一

我有一个MyInterface具有众多实现和集合的接口Collection<MyInterface>.

现在怎么样,我可以保证的是有没有 2种元素在这集是同一类型的

如何我可以阻止任何进入被覆盖

意味着在任何给定的时间点只有集合中每个实现的1个实例.

出于显而易见的原因,我无法equals(Object obj)在界面中添加默认实现.我也不能以任何方式保证每个实现都会覆盖该equals(Object obj)方法(显而易见但是为了彻底性而在这里).

我目前看到的唯一方法是创建一个抽象类MyAbstractClass.但这似乎有点矫枉过正(?)

java collections instanceof

3
推荐指数
1
解决办法
128
查看次数

检查子类时"instanceOf"出错

我有一个方法,它接受所有扩展Persona.Class(Uomo.ClassDonna.Class扩展Persona.Class)的类作为参数.

public PersonaDecorator(Class <? extends Persona> persona) {            
    }    
Run Code Online (Sandbox Code Playgroud)

在此方法中,我需要知道,如果发送到方法的类Uomo.ClassDonna.Class.

我以为我可以这样做:

public PersonaDecorator(Class <? extends Persona> persona) {    
    if(persona instanceof Uomo){
        ......
    }       
}   
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误: Incompatible conditional operand types Class<capture#1-of ? extends Persona> and Uomo

谢谢

java extends instanceof

3
推荐指数
1
解决办法
371
查看次数

在javascript中,new运算符是否总是返回新语句中提到的相同类型的对象?

鉴于此代码:

function foo(){ 
   return foo; 
}
var bar = new foo();

console.log(bar instanceof foo);
Run Code Online (Sandbox Code Playgroud)

我希望输出为"真".但是,它是"假的".

为什么bar对象不是foo类型?

另一方面,如果我只是从foo返回一个数字(比如2),我得到输出为true.

javascript instanceof new-operator

3
推荐指数
1
解决办法
51
查看次数

如何将 instanceof 与 Scala 对象一起使用?

我有以下 Scala 层次结构:

sealed trait SessionResult[+T] {
  def toOption: Option[T]
}

object SessionResult {
  trait SessionValue[T] extends SessionResult[T] {
    def session: T
    def toOption: Option[T] = Some(session)
  }
  trait NoSessionValue[T] extends SessionResult[T] {
    def toOption: Option[T] = None
  }

  case class Decoded[T](session: T) extends SessionResult[T] with SessionValue[T]
  case class CreatedFromToken[T](session: T) extends SessionResult[T] with SessionValue[T]

  case object NoSession extends SessionResult[Nothing] with NoSessionValue[Nothing]
  case object TokenNotFound extends SessionResult[Nothing] with NoSessionValue[Nothing]
  case object Expired extends SessionResult[Nothing] with NoSessionValue[Nothing]
  case class Corrupt(e: Exception) …
Run Code Online (Sandbox Code Playgroud)

java scala instanceof

3
推荐指数
1
解决办法
1410
查看次数