小编Mur*_*göz的帖子

切换实例?

我有一个使用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

java instanceof switch-statement

249
推荐指数
14
解决办法
21万
查看次数

ReactJS无法使用event.persist()从事件中设置状态

我需要设置一个从事件中获取的状态字段,但是当我将函数传递给它时它不会被设置.组件和方法如下所示:

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=> ...)

javascript reactjs

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

如何在Android Studio中按字母顺序对strings.xml进行排序

您好,有没有办法在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

intellij-idea android-studio

28
推荐指数
4
解决办法
6689
查看次数

打字稿:如何映射联合数组类型?

我有以下结构:

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超过测试变量?

javascript typescript

17
推荐指数
1
解决办法
3958
查看次数

Butterknife 8.4.0在重新运行应用程序后找不到视图.它得到一个NullPointerException

在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)

java android android-fragments android-studio butterknife

16
推荐指数
2
解决办法
1063
查看次数

Android Studio 2.2和Jack被Avira Antivirus阻止

所以我更新我的项目使用新的插孔编译器,但由于一些未知的原因我的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

14
推荐指数
1
解决办法
1793
查看次数

Android插孔工具链无法识别流中的java.util.function.Predicate

我正在尝试更新我现有的项目以支持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)

java android java-8 android-7.0-nougat

9
推荐指数
1
解决办法
1480
查看次数

Material-UI:如何使用打字稿为 React.ComponentType&lt;P&gt; 声明类型

我正在使用 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)

javascript typescript material-ui

8
推荐指数
1
解决办法
6576
查看次数

如何在Kotlin中声明原始类型?

在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)

java android kotlin

7
推荐指数
1
解决办法
1096
查看次数

VSCode 1.14.0 7月更新有重大问题:如何回滚?

因此,使用新的VSCode更新版本1.14.0会导致重大问题

  • 高CPU使用率(导致冻结)
  • 随机崩溃
  • 扩展名不可用
  • IntelliSense工作的一半时间

所以我的问题是如何在不丢失配置的情况下将VSCode恢复到以前的版本?

visual-studio-code

6
推荐指数
1
解决办法
205
查看次数