小编sap*_*apy的帖子

如何在React中声明一个全局变量?

i18n在组件中初始化了翻译对象(在应用程序中加载的第一个组件).所有其他组件都需要相同的对象.我不想在每个组件中重新初始化它.怎么回事?使它可用于窗口范围没有帮助,因为我需要在render()方法中使用它.

请为这些问题建议一个通用的解决方案,而不是i18n特定的解决方案.

javascript-globalize reactjs

81
推荐指数
8
解决办法
19万
查看次数

覆盖Java中的成员变量

我正在研究在JAVA中重写成员函数,并考虑尝试重写成员变量.

所以,我定义了类

public class A{
    public int intVal = 1;
    public void identifyClass()
    {
        System.out.println("I am class A");
    }
}

public class B extends A
{
    public int intVal = 2;
    public void identifyClass()
    {
        System.out.println("I am class B");
    }
}

public class mainClass
{
    public static void main(String [] args)
    {
        A a = new A();
        B b = new B();
        A aRef;
        aRef = a;
        System.out.println(aRef.intVal);
        aRef.identifyClass();
        aRef = b;
        System.out.println(aRef.intVal);
        aRef.identifyClass();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

1
I am …
Run Code Online (Sandbox Code Playgroud)

java overriding

60
推荐指数
4
解决办法
6万
查看次数

连接不与Redux-react中的StateLess组件一起使用

我正在从某个其他组件调度一个动作,并且商店正在使用svgArr属性进行更新,但是通过以下无状态组件connect'ed到商店,它在商店更改时没有得到更新svgArr.

它是如何表现的,因为它是一个无状态的组件?或者我做错了什么?

const Layer = (props) => {
  console.log(props.svgArr);
  return (<div style = {
    {
      width: props.canvasWidth,
      height: props.canvasWidth
    }
    }
    className = {
    styles.imgLayer
    } > hi < /div>);
};

connect((state) => {
  return {
    svgArr: state.svgArr
  };
}, Layer
);

export default Layer;
Run Code Online (Sandbox Code Playgroud)

javascript functional-programming reactjs redux redux-thunk

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

Spark 2.0 - 查询Hive时"找不到表或视图"

通过spark-shell2.0 查询Hive时:

spark.sql("SELECT * FROM schemaname.tablename")
Run Code Online (Sandbox Code Playgroud)

它抛出一个错误:

16/08/13 09:24:17 INFO execution.SparkSqlParser: Parsing command: SELECT * FROM schemaname.tablename
org.apache.spark.sql.AnalysisException: Table or view not found: `schemaname`.`tablename`; line 1 pos 14
...
Run Code Online (Sandbox Code Playgroud)

Hive访问似乎通过正确配置hive-site.xml.在shell中Spark正在打印:

scala> spark.conf.get("spark.sql.warehouse.dir")
res5: String = /user/hive/warehouse
Run Code Online (Sandbox Code Playgroud)

在内部conf/hive-site.xml,配置了Hive,可以在Spark上访问其配置.列出数据库时,它显示现有default数据库.但它没有显示内部的表格default.

scala> spark.catalog.listDatabases.show(false)
+-------+----------------+---------------------------------------------+
|name   |description     |locationUri                                  |
+-------+----------------+---------------------------------------------+
|default|default database|hdfs://hdfs-server-uri:8020/user/hive/warehouse|
+-------+----------------+---------------------------------------------+

scala> spark.catalog.listTables("default").show()
+----+--------+-----------+---------+-----------+
|name|database|description|tableType|isTemporary|
+----+--------+-----------+---------+-----------+
+----+--------+-----------+---------+-----------+
Run Code Online (Sandbox Code Playgroud)

访问Hive时可能会遗漏什么?

hadoop hive apache-spark apache-spark-sql

8
推荐指数
0
解决办法
9971
查看次数

Kafka:序列化时的消息大于你用max.request.size配置配置的最大请求大小

收到以下错误(Kafka 2.1.0):

2018-12-03 21:22:37.873 错误 37645 --- [nio-8080-exec-1] osksupport.LoggingProducerListener :发送带有 key='null' 和 payload='{82, 73, 70 的消息时抛出异常, 70, 36, 96, 19, 0, 87, 65, 86, 69, 102, 109, 116, 32, 16, 0, 0, 0, 1, 0, 1, 0, 68, -84,.. .' to topic recieved_sound: org.apache.kafka.common.errors.RecordTooLargeException: 序列化时消息为 1269892 字节,大于您使用 max.request.size 配置配置的最大请求大小。

我尝试了各种 SO 帖子中的所有建议。

我的 Producer.properties:

max.request.size=41943040
message.max.bytes=41943040
replica.fetch.max.bytes=41943040
fetch.message.max.bytes=41943040
Run Code Online (Sandbox Code Playgroud)

服务器.属性:

socket.request.max.bytes=104857600
message.max.bytes=41943040
max.request.size=41943040
replica.fetch.max.bytes=41943040
fetch.message.max.bytes=41943040
Run Code Online (Sandbox Code Playgroud)

ProducerConfig(Spring Boot):

configProps.put("message.max.bytes", "41943040");
configProps.put("max.request.size", "41943040");
configProps.put("replica.fetch.max.bytes", "41943040");
configProps.put("fetch.message.max.bytes", "41943040");
Run Code Online (Sandbox Code Playgroud)

消费者配置(SpringBoot):

props.put("fetch.message.max.bytes", "41943040");
props.put("message.max.bytes", "41943040");
props.put("max.request.size", …
Run Code Online (Sandbox Code Playgroud)

apache-kafka kafka-consumer-api kafka-producer-api spring-kafka

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

抛出异常来强制退出递归是否有效?

以下只是伪代码。

  function x(node){
    if(node.val == 42) 
       return true; // What if I throw an exception here ?
    val1 = node.left ? x(node.left) : false ;
    val2 = node.right ? x(node.right): false; 
    return val1 || val2 ;
 }
Run Code Online (Sandbox Code Playgroud)

假设我想在一棵树上找到 42。通过上面的代码,如果我返回一个有效值,它将冒泡到整个递归链,然后最终返回。

我的假设是,如果我只是抛出异常而不是在第 3 行返回 true,那么它实际上不会通过递归链向上冒泡并直接返回给调用者。

仅抛出异常来破坏整个链是一个好习惯吗?因为假设在 处line 4,它确实在某个嵌套堆栈中找到了 42,并且它仍然会在 处进行递归line 5。如果我只是在 处抛出异常line 3,我们就可以避免不必要的计算。

问题更多的是编译器内部,如果我只是抛出一个未处理的异常,它是否仍然会冒泡到递归堆栈(这使得这种方法毫无意义)或直接返回到父调用的程序计数器。

java recursion tail-recursion

5
推荐指数
1
解决办法
1041
查看次数

如何在wireShark中查看完整的HTTPS URL

我做了足够的研究,但未能找到决定性的答案(版本 1.12.7)。

https://hacker-news.firebaseio.com/v0/item/12345.json当我看到这个数据包时,我的本地服务器正在调用 get ,wireshark我看到了destination URLas hacker-news.firebaseio.com。我的问题很简单

1)我怎样才能看到包括/v0/item/12345.json部分在内的整个 URI 。

2) 为什么下面的 TCP 流中有很多点,这个 TCP 流实际上试图用乱七八糟的英文字母表达什么。

...........Z..d.2......j.q..n8..{."RE...wT...../.+.0.,...'.g.(.k.$...
.........j.i.h.9.8.7.6.2...*.&.......=.5.#...........@.?.>.3.2.1.0.1.-.).%
.....f.........localhost.........
.......3t......5...1..W:....".q.........m....r.>?t w..............#.................0...0..|.......%e.x.#s.0
..*.H..
.....0I1.0...U....US1.0...U.
.
Google Inc1%0#..U....Google Internet Authority G20..
151217200354Z.
161216000000Z0j1.0...U....US1.0...U...
California1.0...U...
Mountain View1.0...U.

..{.<...[L.......V..7.`?Yb.oF.z.....aC#..FtqyG0..p....-s...........d0.pe....3....5s.....T..y.F.I..w{.zX!...ou.db..j
<..+......y.]..`.{V ..q..z"P<T.,<.}..
..........._j.B.*F.\.0 gJa.E..........V).-z...].......t@..S!n......<......`...........>....:Q
Run Code Online (Sandbox Code Playgroud)

和说明

244 19.329480000 sapy hacker-news.firebaseio.com TCP 435 47965?https [PSH, ACK] Seq=471 Ack=3948 Win=40576 Len=369 TSval=20106775 TSecr=4020547278 hacker-news.firebaseio.com 244

python networking wireshark

4
推荐指数
1
解决办法
9892
查看次数

当 url 匹配相同的路由时,React 路由器不会重新加载页面

我有以下路线。当我在/createtest页面上并history.push(/createtest/some-test-id)匹配相同的路由组件时,它不会重新加载。有什么聪明的解决方案吗?或者我需要检查match参数并实现重新加载的逻辑?

(反应 16,路由器 v4)

<Route path="/createtest/:testid?/:type?/:step?/:tab?" render={(props) => <CreateTest user={user} {...props}/>}/>
Run Code Online (Sandbox Code Playgroud)

reactjs react-router-v4

4
推荐指数
1
解决办法
2898
查看次数

如何在Java 8中进行条件方法链接

我有一个spring security配置方法.我希望antMatchers("/**/**").permitAll()仅在条件匹配时才链接特定方法.这样的事情{dev == true ? .antMatchers("/**/**").permitAll(): ()->{}} .当然,这不是一个有效的语法,最重要的做法是什么.寻找menimum编码.

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable()
            .cors().disable()
            .authorizeRequests()
            {dev == true ? .antMatchers("/**/**").permitAll(): ()->{}} //dev only. NEVER enable on prod 
                .antMatchers("/", "/signup", "/static/**", "/api/sigin", "/api/signup", "**/favicon.ico").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/")
                .loginProcessingUrl("/api/signin")
                .successHandler(authSuccessHandler())
                .failureHandler(authFailureHandler())
                .permitAll()
                .and()
            .logout()
                .permitAll();
    }
Run Code Online (Sandbox Code Playgroud)

java method-chaining java-8 spring-boot

4
推荐指数
2
解决办法
455
查看次数