我有一个遗留应用程序,它接受一个整数,将其转换为二进制字符串,反转该字符串,然后将位(一个)的位置作为整数列表获取。例如:
6 -> "110" -> "011" -> (2,3)
7 -> "111" -> "111" -> (1,2,3)
8 -> "1000" -> "0001" -> (4)
Run Code Online (Sandbox Code Playgroud)
在没有 String 操作的现代 Java 中,有什么简洁明了的方法来实现这一点?与 String 的转换对我来说似乎很浪费,而且我知道String.reverse()无论如何都没有简单的方法来翻转 String (no )。
我有一个Python项目列表,我需要得到"除了最后N个"之外的所有项目.它需要在N为零时工作(在这种情况下我想要整个列表)并且当N大于或等于列表的长度时(在这种情况下我想要一个空列表).这适用于大多数情况:
mylist=[0,1,2,3,4,5,6,7,8,9]
print( mylist[:-n] )
Run Code Online (Sandbox Code Playgroud)
但是在N为零的情况下失败了. mylist[:0]返回一个空列表:[].是否有Python切片符号可以实现我想要的功能,还是一个简单的功能?
我正在使用 Angular 6。我有一个<TR>带有点击事件的表格行 ( )。出于测试目的,我们只说事件打印“嘎嘎!” 到控制台。这是 HTML:
<tr *ngFor="let t of things" (click)="quack()">
...
</tr>
Run Code Online (Sandbox Code Playgroud)
在组件中:
quack() {
console.log('quack!');
}
Run Code Online (Sandbox Code Playgroud)
现在,在这一行中,我有一个复选框。这是一个 Bootstrap 4 自定义复选框,但我认为这不是我需要解决的问题的重要内容。该复选框有一个自定义指令,它添加了一个更改事件处理程序(不是点击事件)。HTML 的简化版本是:
<tr *ngFor="let t of things" (click)="quack()">
...
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="cb{{t.id}}" name="cb{{t.id}}"
[my-directive]="b.somedata">
<label class="custom-control-label" for="cb{{t.id}}"> </label>
</div>
...
</tr>
Run Code Online (Sandbox Code Playgroud)
在 my-directive 指令代码中:
@HostListener('change') onChange() {
// do some stuff...
}
Run Code Online (Sandbox Code Playgroud)
我想要发生的是quack()当任何人点击行时触发该功能,除非他们点击复选框。当他们选中或取消选中复选框时,我希望onChange()自定义指令中的函数被触发,我不想嘎嘎叫。
“嘎嘎!” 每次单击该行时,控制台中都会出现一次,这是正确的。奇怪的是,当我点击复选框时,我得到两个嘎嘎声,然后onChange()处理程序触发。我想要零个庸医,我希望有一个,但我得到了两个! …
我想我正在考虑 Tomcat 配置问题与我当前的问题。我正在为 Tomcat 8.5.8 开发 Java Servlet 和 JSP 应用程序,并已开始使用 Java 8 语言功能(特别是方法引用和流)。在我运行 jdk1.8.0_211 的本地计算机上,新代码可以正常工作,按照预期在运行时编译 JSP。
在我们的测试服务器(RH Linux)上,新的 JSP 无法编译(但应用程序的其余部分可以工作)。错误是
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 135 in the jsp file: /jsp/directory/page.jsp
Method references are allowed only at source level 1.8 or above
Run Code Online (Sandbox Code Playgroud)
我自己没有设置服务器,但它运行 Java 8 的某些版本,并且具有相同的 Tomcat 版本(8.5.8),因此我怀疑某个地方有一个配置文件告诉它以较旧的语言编译 JSP等级。(证据是它知道 Method 引用是什么,但拒绝编译它;这是异常而不是错误。)
告诉 Tomcat 在较旧的语言级别编译 JSP 的配置可能隐藏在哪里?
我有一个 Spring Boot Web 应用程序,我正在尝试将其设为无状态。在我的 WebSecurityConfigurerAdapter 中我设置了
http
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
Run Code Online (Sandbox Code Playgroud)
但应用程序(使用 Thymeleaf 模板)通过;jsessionid=<some_session_id>在文件名后附加“”来不断重写图像和脚本的 URL。除了给我一个我不想要的 cookie 之外,它还有一个恼人的副作用,即 Spring Security 会阻止请求,因为它的 URL 中有分号!
Thymeleaf表示这是预期和期望的行为,并表示这不是他们的错:Thymeleaf 只是要求“Servlet API”重写 URL,而我们应该“在 Tomcat 上下文级别配置应用程序”来解决问题。
那么,我该怎么做呢?我有一个用于授权的自定义 JWT cookie,因此我根本不需要会话 cookie,当然在重写的 URL 中也不需要。
我正在尝试运行 Spring Cloud 配置服务器,完成一本书中的示例(Manning's Spring Microservices in Action),但更新到最新版本:Java 17,spring-boot-starter-parent 2.6.1,使用 Spring Cloud 2021.0.0-RC1。
每次我尝试启动服务器时,都会收到此错误:
***************************
APPLICATION FAILED TO START
***************************
Description:
Invalid config server configuration.
Action:
If you are using the git profile, you need to set a Git URI in your configuration. If you have set spring.cloud.config.server.bootstrap=true, you need to use a composite configuration.
Run Code Online (Sandbox Code Playgroud)
我没有使用该git配置文件。我尝试了两种不同的配置文件:(native在类路径上使用配置文件)和vault(在本地运行 Hashicorp Vault 服务器)。我的最新内容/src/resources/bootstrap.yml包含以下内容:
spring:
application:
name: config-server
profiles:
active: vault
cloud:
config:
server:
vault:
port: …Run Code Online (Sandbox Code Playgroud) 我希望能够将随机数生成器传递给Python中的类.该类代表了一个研究模拟,其中使用来自Beta分布的绘制来初始化某组变量,该分布可以生成,random.betavariate(2,2)但是我希望允许将来的用户插入不同类型的随机数生成函数,如random.uniform(0,1).
当我尝试初始化这样的时候......
class simulation:
def __init__(self,rng):
self._rng = rng
s = simulation(random.betavariate(2,2))
Run Code Online (Sandbox Code Playgroud)
...错误是我传递了一个新生成的随机数,而不是传递函数本身.
>>> s._rng
0.5013004813544717
>>> s._rng
0.5013004813544717
Run Code Online (Sandbox Code Playgroud)
这么简单的问题:如何将我最喜欢的带有指定参数的随机数生成函数传递给一个类,将它存储在变量中,并在需要时调用它?优选地,不期望我的类的用户(重新)在random模块中写入功能.
假设我有一个查询返回生产作业表,并且在一列中我有过去 7 天每个作业的输出数组:
sku | job | outputs
-----------------------------
A1 | 123 | {2,4,6,5,5,5,5}
A1 | 135 | {0,0,0,3,5,7,9}
B3 | 109 | {3,2,3,2,3,2,3}
C5 | 144 | {5,5,5,5,5,5,5}
Run Code Online (Sandbox Code Playgroud)
如何编写一个按 SKU(产品编号)分组并按位置求和 7 天输出的查询?在本例中,您可以看到产品 A1 有两个生产作业:这些作业应合并到结果的一行中:
sku | outputs
--------------------------
A1 | {2,4,6,8,10,12,14}
B3 | {3,2,3,2,3,2,3}
C5 | {5,5,5,5,5,5,5}
Run Code Online (Sandbox Code Playgroud) 我正在使用来自 @ng-bootstrap 的 NgbModal 从Angular 6 应用程序打开模态窗口。在这些模态之一中,我希望单击按钮关闭模态并激活父/启动组件中的功能。我怎样才能做到这一点?
我知道使用普通的子组件和父组件,您可以发出一个由父组件捕获的事件(请参阅此处的解决方案)。我可以用我的模态设置做一些类似的事情吗?如果没有,这里最好的方法是什么?
父级中的当前代码(简化):
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { ModalComponent } from "...";
@Component ( {...} )
export class ParentComponent {
...
constructor(private modalService: NgbModal) {}
...
showModal(i:InputObject) {
const modalRef = this.modalService.open(ModalCompoenent);
modalRef.componentInstance.i = i;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个枚举我通话Permission的安全权限,此事对我的申请。在数据库中,用户可能拥有与我的应用程序无关的其他权限。从数据库读取用户时,我得到 aList<String>并且我想建立 a List<Permission>,忽略那些不是枚举值的字符串。
public enum Permission { ADMIN, USER }
List<String> plaintextAuthorities = List.of("ADMIN","USER","COFFEEMAKER")
List<Permission> appPermissions = plaintextAuthorities.stream()
.map(Permission::valueOf) // this will throw an IllegalArgumentException for 'COFFEEMAKER'
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
问题是该map步骤在到达与枚举值不对应的字符串之一时将引发异常。我怎样才能filter去掉这些值,以便在不抛出异常的情况下悄悄地忽略它们?
我想计算字符串中每个字母的出现次数。目标是建立一个HashMap<char,i32>键是字符串中的所有字符而值是出现次数的地方。
假设我正在遍历char字符串或输入文件中的值。对于 each char,如果还没有遇到过,我需要将它HashMap作为一个值为 1 的新键添加到 中,但是如果之前已经看到过,我需要增加该值。
这是有效的代码。请耐心等待,我对 Rust 很陌生:
use std::collections::HashMap;
fn main() {
let mut letter_counts: HashMap<char,i32> = HashMap::new();
let input_string = "Hello, world!";
let char_vec: Vec<char> = input_string.to_lowercase().chars().collect();
for c in char_vec {
if let Some(x) = letter_counts.get_mut(&c) {
*x = *x + 1;
} else {
letter_counts.insert(c,1);
}
}
println!("{:?}",letter_counts);
}
Run Code Online (Sandbox Code Playgroud)
我想知道的是,在 Rust 中是否有一种惯用的方法来做到这一点?通过惯用语,我的意思是有一个标准库类型(如 Python 的defaultdict),或 HashMap 上的一个方法(如 Java 的HashMap.computeIfAbsent),可以使这个更简单,更清晰,和/或比我所做的手动编码算法更不容易出错?
java ×3
angular ×2
python ×2
aggregation ×1
arrays ×1
binary ×1
click ×1
collections ×1
enums ×1
exception ×1
filtering ×1
hashmap ×1
java-stream ×1
jsp ×1
parent-child ×1
postgresql ×1
random ×1
rust ×1
session ×1
slice ×1
spring-boot ×1
tomcat ×1