CSDN问答——精选问答Vol.11

Posted 问答小精灵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSDN问答——精选问答Vol.11相关的知识,希望对你有一定的参考价值。

《精选问答》挑选CSDN问答频道每周最新最热的优质回答,为大家提供可信赖的优质解答,点击查看更多已解决问题

目录

 1、C#如何让嵌入panel控件的子窗体切换回来后子窗体控件状态保持

2、java怎么对json格式数据进行处理?

3、javascript问题,没有id以及class情况下,javascript怎么动态获取与替换?

4、css怎么实现给单个边添加阴影效果

5、 为什么想要实现list实体转set实体去重,要重写hashcode和equals方法?

6、VUE 后台返回 list 怎么渲染成表单 并且做校验 提交的时候变成K,V

7、JSON.parseArray转换数组里有空值时抛出异常


 1、C#如何让嵌入panel控件的子窗体切换回来后子窗体控件状态保持

问题描述:

C#如何让嵌入panel控件的子窗体切换回来后子窗体控件状态保持

解决方案——来自@CSDN专家-文盲老顾的回答

第一,要保持状态,就不应该使用 clear,你把原来的东西都清除掉了,要保持状态就太麻烦了,不如原来的控件设置为 visible false

第二,直接对控件 clear,而不执行 dispose,会造成内存遗留,这样做并不安全

本题更多回答戳链接:https://ask.csdn.net/questions/7476974


2、java怎么对json格式数据进行处理?

问题描述:

这是一段json的数据,现在该数据被JSONObject格式的jsonObject存储,接下来应该怎么对jsonObject处理才可以得出src和tgt的值。(java的问题)

解决方案——来自@TheWaSaiBoy的回答

因为用的JSON对象可能不一样,这里面的转换也会有一些差异的。具体的还要看实际,这个是一些思路: 

// 用key来取出他们的值。
String type = jsonObject.get("type");
 
// 获取src
JSONArray  arr = new JSONArray(jsonObject.get("translateResult").toString());
JSONObject obj = new JSONObject(arr.get(0).toString());
obj.get("src");
obj.get("tgt");

本题更多回答戳链接:https://ask.csdn.net/questions/7477817


3、javascript问题,没有id以及class情况下,javascript怎么动态获取与替换?

问题描述:

假设html代码如下,需要替换<script里的src链接,就是把aa/bb/code.js?tenkey替换成cc/dd/code.js?tenkey

src里只有code.js?是固定类型

<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title> 问 题</title>
 </head>
 <body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<script src="aa/bb/code.js?tenkey" type="text/javascript"></script>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
 </body>
</html>

 解决方案——来自@li.siyuan的回答

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<script src="aa/bb/code.js?tenkey" type="text/javascript"></script>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<script>
    window.onload = function () {
        document.querySelector("script").src = "aaaaaaaaaaaaaaa"
    }
</script>
</body>
</html>

本题更多回答戳链接:https://ask.csdn.net/questions/7476980


4、css怎么实现给单个边添加阴影效果

问题描述:

box-shaow的前两个值是设置x轴y轴,怎么设置单方向的阴影,我想把上阴影给清除掉#csss属性

解决方案——来自@CSDN专家-天际的海浪的回答

可以设置box-shaow的第4个值设置为负数,把阴影向里收缩,第4个长度值定义元素的阴影外延值(如果提供了)。正值,阴影将向四面扩展;负值,则阴影向里收缩

代码如下:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <title> 页面名称 </title>
<style type="text/css">
div {
    margin: 50px;
    width: 500px;
    height: 500px;
    background-color: #f66;
    box-shadow: 20px 0px 15px -10px #482915;
}
</style>
</head>
<body>
<div></div>
</body>
</html>

效果如图: 

 本题更多回答戳链接:https://ask.csdn.net/questions/7475082


5、 为什么想要实现list实体转set实体去重,要重写hashcode和equals方法?

问题描述:

今天想要进行实体类集合,结果我list强制转型set报错了,然后我new HashSet<>(list);
这个虽然没报错,但是这个却没有实现去重。有懂底层的能科普么?

解决方案——来自@走一步-再走一步的回答

HashSet的底层其实是封装了HashMap,而 new HashSet<>(list)底层就是调用了addAll 方法,addAll 底层调用了add 方法,add 又调用了HashMap的 put(key,val) 方法
HashMap 底层是数组+链表的结构,其中如何判断map 中是否已经有值也就是所谓的去重 判断方法如下:

计算 key 的hashCode值,在hashMap中找到 该key 存放在数组的位置的元素 p,然后判断元素p的hashCode值是否和需要添加的元素key 的hashCode值是否一致
如果一致,再去判断 需要添加的key 和 p的key的 是否是同一个对象如果不是同一个对象,那么调用equals 是否相等
如果相等了,用新的值 替换掉旧的值,判断是否相等的逻辑如下:

p.hash == hash &&
                ((k = p.key) == key || (key != null && key.equals(k)))

也就是说,重写了hashCode 和 equals 能实现去重,如果没有重写 equals ,只能 实现是同一个对象的去重,举个栗子

class A{
String name;
public A(String name){
this.name = name;
}
}

不重写equals的话,

A a = new A("wu");
A b = new A("wu");

在 HashMap中哪怕a和b的hashCode值相等,但是后续判断 a ==b 为false,因为a和b的地址并不一样,a.equals(b) 也是false,因为没有重写 equals,那么该方法继承自 Object,方法定义如下:

    public boolean equals(Object obj) {
        return (this == obj);
    }

其实还是判断地址是否一致

本题更多回答戳链接:https://ask.csdn.net/questions/7475593


6、VUE 后台返回 list 怎么渲染成表单 并且做校验 提交的时候变成K,V

问题描述:

VUE 后台返回 list 怎么渲染成表单 并且做校验 提交的时候变成K,V,怎么渲染成这样,求解 

 解决方案——来自@AkaCoder的回答

第一种
1.为了方便,我们直接通过map把所有的数据里面新增一个判断类型type,如果只有一个值得情况为0,为开关的情况下为1
2.然后通过v-for循环出来结构v-model进行绑定
3.提交的时候,需要改写成key:value形式

第二种
1.直接把数据解构出来,每个数据单独赋值为key:value
2.v-model去绑定到对象的值
提交也是提交对象

本题更多回答戳链接:https://ask.csdn.net/questions/7475717


7、JSON.parseArray转换数组里有空值时抛出异常

问题描述:

如图,当我转化这个数组时,因为这个数组里有空值就抛出了异常,我用debug走,发现到了这个转换json这一步就会直接跳转到了这两个页面。搞不清楚怎么会发生这个跳转,当数组里没空值时不会发生这个情况

解决方案——来自@砻谷踏碓的回答

两种方法参考:
1 TaskDetail成员变量改为允许空值
2 通过AOP拦截 parseArray的转换过程,逢null转""或0

本题更多回答戳链接:https://ask.csdn.net/questions/7476174

以上是关于CSDN问答——精选问答Vol.11的主要内容,如果未能解决你的问题,请参考以下文章

CSDN问答——精选问答Vol.8

CSDN问答——精选问答Vol.7

CSDN问答——精选问答Vol.9

CSDN问答——精选问答Vol.4

CSDN问答——精选问答Vol.6

CSDN问答——精选问答Vol.5