我面对以下代码:
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) 我不确定树(引用变量)如何在我的示例程序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) 这个问题确实必须相当简单,但我不能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) 有人可以向我解释这种行为吗?
'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构造函数的实例.
我想知道如何询问 java 对象是 List 还是 ArrayList。
例如:
if (Object instanceof List <?>)) {
// Do something
}
Run Code Online (Sandbox Code Playgroud)
PS:我有几个不同类型的列表,无论它们包含什么类型的数据,我都想为任何列表实现该方法。
我是 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)
谢谢
我有一个MyInterface具有众多实现和集合的接口Collection<MyInterface>.
现在怎么样,我可以保证的是有没有 2种元素在这集是同一类型的?
而如何我可以阻止任何进入从被覆盖?
意味着在任何给定的时间点只有集合中每个实现的1个实例.
出于显而易见的原因,我无法equals(Object obj)在界面中添加默认实现.我也不能以任何方式保证每个实现都会覆盖该equals(Object obj)方法(显而易见但是为了彻底性而在这里).
我目前看到的唯一方法是创建一个抽象类MyAbstractClass.但这似乎有点矫枉过正(?)
我有一个方法,它接受所有扩展Persona.Class(Uomo.Class和Donna.Class扩展Persona.Class)的类作为参数.
public PersonaDecorator(Class <? extends Persona> persona) {
}
Run Code Online (Sandbox Code Playgroud)
在此方法中,我需要知道,如果发送到方法的类Uomo.Class或Donna.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
谢谢
鉴于此代码:
function foo(){
return foo;
}
var bar = new foo();
console.log(bar instanceof foo);
Run Code Online (Sandbox Code Playgroud)
我希望输出为"真".但是,它是"假的".
为什么bar对象不是foo类型?
另一方面,如果我只是从foo返回一个数字(比如2),我得到输出为true.
我有以下 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) instanceof ×10
java ×7
javascript ×3
collections ×1
constructor ×1
extends ×1
instance ×1
java-8 ×1
list ×1
new-operator ×1
object ×1
scala ×1
scope ×1
setter ×1