小编Hen*_*sen的帖子

CSS AST 分析器

我有风格

.a{width: 10px;}
...
.a{width: 20px;}
Run Code Online (Sandbox Code Playgroud)

很明显,第一个选择器未使用。我正在寻找一个工具,可以为我提供有关 css 中此类位置的信息。例如getUnusedRule(styles)-> style.css、规则、选择器等处的行号。别的。

第二种情况是通知过于嵌套的选择器

.a .b .c .d{...}
Run Code Online (Sandbox Code Playgroud)

getTooLongSelectors(styles, maxNestingNum)-> 在源代码中查找位置的信息

我不想缩小输出CSS,但需要在代码中找到这些地方并手动修复它。重点不是缩小代码,而是使源代码更准确,以便更好地维护并防止堆积不必要的东西。

我认为它可能是 css AST 分析器,它输出用于手动源代码改进的信息。

我更喜欢基于javascript的工具,我们团队中有一些 js 程序。

有任何想法吗?不仅欢迎现成的工具,而且欢迎思维方式。

javascript css optimization abstract-syntax-tree

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

在 java-8 lambda 表达式中使用 if-else 语句

我在 java-7 中有一个 for 语句,它工作正常:

Character cha = new Character(',');
String ncourseIds = null;
String pastCourseIds = null;
for (EquivalentCourse equivalentCourse : equivalentCourses) {
  if(equivalentCourse.getNcourse() != null){
    ncourseIds += equivalentCourse.getNcourse().getId()+ ",";   
  } else if(equivalentCourse.getPastCourse() != null) {
    pastCourseIds +=equivalentCourse.getPastCourse().getId()+","; 
  }
}
if(!ncourseIds.isEmpty() &&cha.equals(ncourseIds.charAt(ncourseIds.length()-1))) {
  ncourseIds = ncourseIds.substring(0, ncourseIds.length()-1);
}
if(!pastCourseIds.isEmpty()&& cha.equals(pastCourseIds.charAt(pastCourseIds.length()-1))) {
  pastCourseIds = pastCourseIds.substring(0,pastCourseIds.length()-1);
}
Run Code Online (Sandbox Code Playgroud)

现在我想将我的代码转换为Stream&collect在 java-8 中,我实现了一半关于 filter not null 的业务Ncourse

equivalentCourses.stream().filter(obj -> obj.getNcourse() != null )
                 .map(obj -> obj.getNcourse().getId()).collect(Collectors.joining(",")); 
Run Code Online (Sandbox Code Playgroud)

但我不知道实施它的else-statement …

java lambda if-statement java-8

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

使用Retrofit 2获取SSLException

我正在创建授权应用程序,我正在使用Retrofit 2.当我正在进行调用时,这将转到onFailure方法并获得异常

"javax.net.ssl.SSLException: Connection closed by peer"

但问题是,昨天这很有效.今天它给了例外.我在互联网上找到一些SSLException - 在Android 4.x版本上由peer关闭的连接,或者如何使用Retrofit添加TLS v 1.0和TLS v.1.1,但这对我没有帮助.任何想法如何解决它.在后端TLS1.2启用.

public class RegistrationFragment extends BaseFragment {
View mainView;

ApiClient apiClient = ApiClient.getInstance();

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    mainView = inflater.inflate
            (R.layout.registration_fragment, container, false);

            //Calling the authorization method
            registerCall();
        }
    });

    return mainView;
}

//User authorization method

public void registerCall() {

    Call<ResponseBody> call = apiClient.registration(supportopObj);
    call.enqueue(new Callback<ResponseBody>() {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
            if (response.isSuccessful()) …
Run Code Online (Sandbox Code Playgroud)

android sslexception retrofit tls1.2

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

Spring Boot的不变配置

我正在尝试找到一种使用Immutables库创建用于保存Spring Boot应用程序配置的数据类的方法。

我的数据配置类是:

@Value.Immutable
@JsonDeserialize(as = ImmutableAuthConfig.class)
public interface AuthConfig {
    String domain();
    String clientId();

    @Value.Redacted
    String clientSecret();
}
Run Code Online (Sandbox Code Playgroud)

当主配置类设置为

@Configuration
@EnableConfigurationProperties
@ConfigurationProperties
public class Config {
    private ImmutableAuthConfig auth;

    public AuthConfig getAuth() {
        return auth;
    }

    public void setAuth(ImmutableAuthConfig auth) {
        this.auth = auth;
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用“ ImmutableAuthConfig或”或“仅” AuthConfig作为字段的一些变体,但没有任何方法可以改善这种情况。尚未获取配置,并且在应用程序启动后auth仍保留配置字段null

AuthConfig用传统的POJO 替换类的内容可以解决此问题,但是我更喜欢一个不变的对象。有什么方法可以说服Spring与Immutables库生成的类进行接口连接?

java spring-boot immutables-library

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

禁用 Ginkgo 的“慢测试”警告

我正在使用 Ginkgo 执行一些相对长时间运行的集成测试。我的测试输出中偶尔会出现警告,表明我的测试执行时间太长:

\n\n

\xe2\x80\xa2 [SLOW TEST:30.000 seconds]

\n\n

通过标准 Go 测试库运行 Ginkgo 时,有没有办法禁用这些警告?该文档提到了 Ginkgo 测试运行程序的一个参数 ( --slowSpecThreshold=TIME_IN_SECONDS),但似乎没有提到如何以编程方式实现相同的目的。

\n

go ginkgo

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

guava - InetAddress.coerceToInteger返回int而不是long

我有一个关于Guava的InetAddress.coerceToInteger方法的问题.

根据文档的方法:

public static int coerceToInteger(InetAddress ip)

'返回表示IPv4地址的整数,无论​​提供的参数是否为IPv4地址."

但是,IPv4范围是无符号的32位,而Java的int是有符号的 - 意味着返回的值只能覆盖相关IPv4范围的一半.

我错过了某人或方法中存在真正的问题吗?

谢谢

java inetaddress guava

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

是否可以使用一行将流收集到两个不同的集合?

我有以下代码:(为了勇敢而简化)

public void search(Predicate<String> predicate, Elements elements)
{
    List<SearchResult> searchResults = elements.stream()
        .filter(element -> predicate.test(element.ownText()))
        .map(element -> new SearchResult(element.ownText(), element.baseUri(),element.tagName()))
        .collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)

但是现在,我想要另一个列表,该列表将包含没有映射的所有过滤元素。是否可以使用流来做到这一点,或者我应该为此更改为 foreach 循环?

java java-stream

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

如何将主题动态传递给 kafka 侦听器?

从几天开始,我正在尝试将主题动态传递给 Kafka 侦听器的方法,而不是通过来自 Java DSL 的键使用它们。周围的任何人以前都这样做过,或者可以说明实现这一目标的最佳方法是什么?

java apache-kafka kafka-consumer-api

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

如何在postgres jsonb查询中检查键的值是否为真

例如我的表是:

CREATE TABLE mytable (
    id bigint NOT NULL,
    foo jsonb
);
Run Code Online (Sandbox Code Playgroud)

它有一些价值:

id   | foo
-----+-------
 1   | "{'a':false,'b':true}"
 2   | "{'a':true,'b':false}"
 3   | NULL
Run Code Online (Sandbox Code Playgroud)

我想知道如何检查键的值是否为true,我应该使用哪个运算符

我想要这样的东西,可以检查价值:

SELECT 1 
FROM mytable
WHERE
id=2
AND
foo['a'] is true
;
Run Code Online (Sandbox Code Playgroud)

sql postgresql json boolean

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

如何将StreamEx解包为"普通的旧Java流"?

StreamEx是一个功能强大的库,但在某些时候我不再需要它的超级大国了.

我怎么能摆脱StreamEx内部开销?这会造成问题吗?

防爆.

public void process(Path path){
    StreamEx.of(Files.lines(path))
        .groupRuns(...)
        //See below 
        .unwrap()
        //
        .map(...)
        .forEach(...)
}
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream streamex

3
推荐指数
1
解决办法
584
查看次数