我有一个使用switch case for instanceofobject的问题:
例如:我的问题可以用Java重现:
if(this instanceof A)
doA();
else if(this instanceof B)
doB();
else if(this instanceof C)
doC():
Run Code Online (Sandbox Code Playgroud)
如何使用switch...case?
我需要设置一个从事件中获取的状态字段,但是当我将函数传递给它时它不会被设置.组件和方法如下所示:
constructor(props: SomeProps, context: any) {
super(props, context);
this.state = {
isFiltering: props.isFiltering,
anchor: "",
};
}
private toggleFilter = (event: any) => {
event.persist()
this.setState(prevState => ({
isFiltering: !prevState.isFiltering,
anchor: event.currentTarget // does not work, it's null
}));
}
Run Code Online (Sandbox Code Playgroud)
如果我删除event.persist()然后我收到以下错误:
出于性能原因,此合成事件将重复使用.如果您看到这个,那么您将
currentTarget在已发布/无效的合成事件上访问该方法.这是一个无操作功能.如果必须保留原始合成事件,请使用event.persist().有关更多信息,请参阅https://facebook.github.io/react/docs/events.html#event-pooling.
由于某种原因,以下代码有效:
private toggleFilter = (event: any) => {
this.setState({anchor:event.currentTarget}) // works fine
this.setState(prevState => ({
isFiltering: !prevState.isFiltering,
}));
}
Run Code Online (Sandbox Code Playgroud)
为什么以上工作但不是我使用时this.setState(prevState=> ...)?
您好,有没有办法在strings.xml中按字母顺序对字符串名称进行排序?它应该像这样排序
之前
<string name="ccc">CText</string>
<string name="aaa">AText</string>
<string name="bbb">BText</string>
Run Code Online (Sandbox Code Playgroud)
后
<string name="aaa">AText</string>
<string name="bbb">BText</string>
<string name="ccc">CText</string>
Run Code Online (Sandbox Code Playgroud)
我使用的是Android Studio 1.5.1
我有以下结构:
interface Test1 {
number: number;
}
interface Test2 extends Test1 {
text: string;
}
let test: Test1[] | Test2[] = [];
test.map(obj => {}); // does not work
Run Code Online (Sandbox Code Playgroud)
我收到错误:
无法调用类型缺少调用签名的表达式.输入'{(this:[Test1,Test1,Test1,Test1,Test1],callbackfn :( this:void,value:Test1,index:nu ...'没有兼容的呼叫签名
我怎样才能map超过测试变量?
在Android Studio Butterknife.bind(this)中重新运行应用后,无法再找到视图.到目前为止我找到的唯一可靠的解决方案是Cleaning/Rebuilding Project再次运行它.然后它再次查找视图,直到下次重新运行.到目前为止,这令人非常恼火,重建至少需要两分钟.
我有以下内容 build.gradle
android {
compileSdkVersion 24
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "xx"
minSdkVersion 21
targetSdkVersion 24
versionCode x
versionName "xxx"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
jackOptions {
enabled true
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
compile 'com.jakewharton:butterknife:8.4.0'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support:support-annotations:24.2.1'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:support-v13:24.2.1'
compile …Run Code Online (Sandbox Code Playgroud) 所以我更新我的项目使用新的插孔编译器,但由于一些未知的原因我的AntiVir阻止任务transformClassesWithPreJackPackagedLibrariesForDebug
它的工作,如果我禁用AntiVir实时保护.我真的不想这样做,我不想开始把我的android项目放在例外列表中.
我使用的是Android Studio 2.2,这是我的build.gradle
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
minSdkVersion 21
targetSdkVersion 24
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
jackOptions {
enabled true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Run Code Online (Sandbox Code Playgroud)
我的 project.gradle
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试在我的硬件设备上运行应用程序时出现错误.
Error:Execution failed for task ':app:transformClassesWithPreJackPackagedLibrariesForDebug'.
> Failed to delete temporary file C:\Users\User\AppData\Local\Temp\jill-1475579265083-0.jack
Run Code Online (Sandbox Code Playgroud) java android android-studio android-jack-and-jill jack-toolchain
我正在尝试更新我现有的项目以支持Java 8.我有一个使用java 8流的依赖项.
return map == null || map.keySet().stream().allMatch(key -> !key.contains("."));
Run Code Online (Sandbox Code Playgroud)
我尝试运行应用程序时收到以下错误:
Error:ValidKeysValidator.java:17: Lambda coming from jar file need their interfaces on the classpath to be compiled, unknown interfaces are java.util.function.Predicate
com.android.jack.api.v01.CompilationException
at com.android.jack.api.v01.impl.Api01ConfigImpl$Api01CompilationTaskImpl.run(Api01ConfigImpl.java:113)
at com.android.builder.core.AndroidBuilder.convertByteCodeUsingJackApis(AndroidBuilder.java:1852)
at com.android.builder.core.AndroidBuilder.convertByteCodeUsingJack(AndroidBuilder.java:1679)
at com.android.builder.internal.compiler.JackConversionCache.convertLibrary(JackConversionCache.java:99)
at com.android.build.gradle.tasks.JackPreDexTransform.runJack(JackPreDexTransform.java:174)
at com.android.build.gradle.tasks.JackPreDexTransform.transform(JackPreDexTransform.java:119)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:178)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:174)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:156)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:173)
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:483)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:245)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:232)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at …Run Code Online (Sandbox Code Playgroud) 我正在使用 Typescript 和Material-UI我想为这样的变量声明组件类型
import MoreVert from '@material-ui/icons/MoreVert'
import { SvgIconProps } from '@material-ui/core/SvgIcon';
let myIcon: SvgIconProps = <MoreVert />; // does not work
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
[ts]
Type 'Element' is not assignable to type 'SvgIconProps'.
Types of property 'type' are incompatible.
Type 'string | ComponentClass<any> | StatelessComponent<any>' is not assignable to type 'string'.
Type 'ComponentClass<any>' is not assignable to type 'string'.
Run Code Online (Sandbox Code Playgroud)
这就是 SvgIcon.ts 的样子。我究竟做错了什么?
import * as React from 'react';
import { StandardProps, PropTypes } from '..';
export interface …Run Code Online (Sandbox Code Playgroud) 在Java中,我可以声明这一点
private List a;
//onCreate
a = new ArrayList()
Run Code Online (Sandbox Code Playgroud)
但是在Kotlin中它显示错误,它迫使我特定一种类型
private List<String> a
Run Code Online (Sandbox Code Playgroud)
有时我不想提供类型(我不需要),但它在Kotlin中显示错误例如在Java中
public abstract class BaseActivity<T extends ViewDataBinding> extends AppCompatActivity {
//something
}
public abstract class BaseFragment {
private BaseActivity activity;
//something
}
//in kotkin I can't write
lateinit var activity: BaseAtivity //show error here (I have to specific a type but this is the base class and I do not want to specific a type here). I just want a reference of BaseActivity
@Override
public void onAttach(Context …Run Code Online (Sandbox Code Playgroud) 因此,使用新的VSCode更新版本1.14.0会导致重大问题
所以我的问题是如何在不丢失配置的情况下将VSCode恢复到以前的版本?
java ×5
android ×4
javascript ×3
typescript ×2
butterknife ×1
instanceof ×1
java-8 ×1
kotlin ×1
material-ui ×1
reactjs ×1