我遵循“Grails in Action”一书来创建以下场景。
一张地图属于一个或多个地图集。地图集可以包含一张或多张地图。两者都属于一个用户。
所以,我所做的是:
Map.groovy:
static hasMany = [ sets : Mapset ]
static belongsTo = [ user : User, set : Mapset ]
Run Code Online (Sandbox Code Playgroud)
Mapset.groovy:
static hasMany = [ maps : Map ]
static belongsTo = [ user : User ]
Run Code Online (Sandbox Code Playgroud)
User.groovy:
static hasMany = [ maps : Map, sets: Mapset ]
Run Code Online (Sandbox Code Playgroud)
尽管如此,我在运行应用程序时收到此错误:
引起原因:org.codehaus.groovy.grails.exceptions.GrailsDomainException:在多对多关系中的域类 [class at.package.Mapset] 和 [class at.package.Map] 之间没有定义所有者。示例:static ownsTo = at.package.Map
如果我为 Map …
我让用户输入一些标签.这些标签应仅包含字符:
[a-z][A-Z][0-9] - 如果存在任何其他char,则应从字符串中删除它.
这可能吗?最快的方法是什么?
我在调用方法时遇到问题.例如,我希望以下程序有两种方法:
我无法调用方法main.
import java.util.Scanner;
public class LeapYearCheck {
public static void main(String[] args) {
LeapYearCheck ob = new LeapYearCheck();
ob.isLeapYear();
ob.daysInMonth();
}
static void isLeapYear() {
Scanner input = new Scanner(System.in);
int month = input.nextInt();
System.out.println("Enter a year: ");
int year = input.nextInt();
if (year % 4 == 0 || year % 400 == 0) {
System.out.println(year + " is leap year:");
} else {
System.out.println(year + " is not leap year:");
}
}
static void …Run Code Online (Sandbox Code Playgroud) 我有一个程序的以下部分,它模拟一个非常基本的菜单.
while (true) {
int selection;
try {
selection = scanner.nextInt();
} catch (Exception e) {
selection = -1;
}
switch (selection) {
case 0:
System.exit(0);
default:
System.out.println("No valid selection!");
}
}
Run Code Online (Sandbox Code Playgroud)
现在,每当我输入不是整数时,将selection设置为,-1并打印错误消息.然而,循环继续无休止地,Scanner不等待任何输入.
我怎么告诉它再等一下?如何在格式错误的用户输入上更优雅地失败?